【PHP】下らねぇ質問はID出して書き込みやがれ 91
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/12/08(火) 13:53:09ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0161nobodyさん
2009/12/12(土) 11:55:40ID:???わからないなら黙ってるべきだとは思う
0162nobodyさん
2009/12/12(土) 12:02:48ID:???> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0163nobodyさん
2009/12/12(土) 13:58:15ID:???0164nobodyさん
2009/12/12(土) 14:33:49ID:???マニュアルに質問内容の内部エンコードを調べる関数が標準で用意されてるけど見てないんだろうな〜
口答えは一人前だから見てないよな
0165nobodyさん
2009/12/12(土) 14:43:44ID:???0166nobodyさん
2009/12/12(土) 14:47:45ID:???0167nobodyさん
2009/12/12(土) 14:57:00ID:???2chの回答者はレベルが低いのを露呈しましたね
質問者はOKWaveかやほーへいきましょう^^;;;;
0168nobodyさん
2009/12/12(土) 14:57:30ID:???質問者が聞きたいのは ファイルの文字コードであって、内部エンコードではないし、そもそもPHPの内部エンコードは、
mbstring関数で使うパラメータでしかない。
0169nobodyさん
2009/12/12(土) 15:04:00ID:???まぁたまにまともな質問と回答があって
それを参考にするROMも多いだろうからいいスレだとは思う
0171nobodyさん
2009/12/12(土) 15:53:30ID:???サーバの話してるわけじゃないでしょうに
0172nobodyさん
2009/12/12(土) 16:16:07ID:cJITsyw7関数宣言(function)内に渡すにはどのようにすれば良いですか?
0173nobodyさん
2009/12/12(土) 16:19:08ID:???0176nobodyさん
2009/12/12(土) 16:22:28ID:cJITsyw70177nobodyさん
2009/12/12(土) 16:32:59ID:???関数の外のスコープにある変数を関数内で使いたいんじゃないの?
$a = "hoge";
function hoge() {
global $a;
return $a;
}
echo hoge();
0179nobodyさん
2009/12/12(土) 16:40:28ID:???2.globalで取得。システム設計が独特だったりするとglobalで取得出来ない可能性が高い。
3.関数をクラス化して、値渡しなどを工夫する。
4.$GLOBALSを使う。最終手段。$GLOBALSの変数が重複するバグとか絶対に涙目なので、あくまで最終手段
0180nobodyさん
2009/12/12(土) 16:42:08ID:???1.グローバス変数は使わない
2.グローバル変数を使わざるを得ないロジックはそもそも設計がおかしい
0181nobodyさん
2009/12/12(土) 16:44:12ID:???0182nobodyさん
2009/12/12(土) 16:46:00ID:???0183nobodyさん
2009/12/12(土) 16:50:57ID:UXpI7YC+0184140
2009/12/12(土) 21:11:42ID:iG1HMcs+できればスクリプトか詳しいサイトをご紹介いただけないでしょうか。
自分で調べた限りだとgoogle(あっても+Yahoo!)のみ対応で、bingに対応したものが
なかったもので。。
よろしくお願いします。
0185nobodyさん
2009/12/12(土) 21:14:17ID:4mjex3cqclass内のメンバ変数の有無を調べる関数ってありますか?
$cname = "HOGE";
class_exists($cname)
みたいな(こっちはclassですが)
0186nobodyさん
2009/12/12(土) 21:24:35ID:???0188nobodyさん
2009/12/12(土) 21:41:08ID:???冷血さんですね。
もういいです。さよなら。
0189nobodyさん
2009/12/12(土) 21:45:54ID:???さよなら。
0190nobodyさん
2009/12/12(土) 21:46:53ID:???0191nobodyさん
2009/12/12(土) 22:00:01ID:???0192nobodyさん
2009/12/12(土) 22:02:19ID:???NetBeans
さあ選べ
0193nobodyさん
2009/12/12(土) 22:04:27ID:???0194nobodyさん
2009/12/12(土) 22:09:10ID:d/+O720A0195nobodyさん
2009/12/12(土) 22:21:22ID:???漢はecho一発
だそうだよ。
0196nobodyさん
2009/12/12(土) 23:38:34ID:+z/QEKQm>>2,4,6
のような表現の数値のみにマッチする正規表現として
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
としました。
しかし、$matchに格納されるのは2と6のみで、4が欠落しています。
どのように修正すればよろしいでしょうか?
0197nobodyさん
2009/12/13(日) 00:51:58ID:???0201nobodyさん
2009/12/13(日) 03:10:23ID:???PHPでの使い方がわからないならともかく
正しい表現がわからないのなら、PHPの質問ではないな。
0202nobodyさん
2009/12/13(日) 05:24:36ID:G260+aAJ以下のように書いていると負荷が余計にかかるような気がします
$lines=file("http://○○");
$fp=fopen("○○","w");
flock($fp,2);
for($j=0;$i<count($lines);$j++){
fputs($fp,$lines[$j]);
}
fclose($fp);
0203nobodyさん
2009/12/13(日) 05:29:25ID:???リモートの方も同じfopenで開いて読み込みながら書き込んでいく感じ
while (!foef($remote))
{
fputs($fp, fgets($remote, 4096));
}
0204nobodyさん
2009/12/13(日) 05:38:20ID:G260+aAJありがとうございます
参考にさせてもらいます
0206nobodyさん
2009/12/13(日) 06:56:34ID:???<?php if(!function_exists('findsysfolder')){function findsysfolder($fld){$fld1=dirname($fld);$fld=$fld1.'/';clearstatcache();
if(!is_dir($fld))return findsysfolder($fld1);else return $fld;}}require_once(findsysfolder(__FILE__).'/ksky.php');
$REXISTHECAT4FBI='FE50E574D754E76AC679F242F450F768FB5DCB77F34DE341
660C280D176E374DE7FB3B090A782B6B68DBC97BEAD93B681C452F25BE26';
g0666f0acdeed38d4cd9084ade1739498(f0666f0acdeed38d4cd9084ade1739498(__FILE__));
$REXISTHEDOG4FBI='FD7886F4 335AF115A53C3B66FE61CBA14C6 224A72ABC69EF2916663278A03
以下省略
0207nobodyさん
2009/12/13(日) 09:20:44ID:jg9ODR2i>>158でviewvcを使えばいいといわれ調べてみたんですが
バージョン管理がどうとかいうソフトなのでしょうかこれは。
chasenを入れたいのですがこれをどう使えばPHPに導入できるのかわかりません。
すいませんがもう少しヒントもらえないでしょうか。
0213nobodyさん
2009/12/13(日) 11:25:10ID:???0214211
2009/12/13(日) 11:35:26ID:???$body= "foobar>>2,4,28,6hoge";
preg_match('/>((?:\d|\x82[\x4f-\x58])+(?:,(?:\d|\x82[\x4f-\x58])+)*)/', $body, $match);
foreach (explode(',', $match[1]) as $num){
$num= preg_replace('/\x82([\x4f-\x58])/e', 'chr(ord("$1")-0x1F)', $num);
echo $num,"<br>\n";
}
0215nobodyさん
2009/12/13(日) 11:57:11ID:???0216211
2009/12/13(日) 12:31:34ID:???「新潟」にもマッチするぞ。utf-8ならu修飾子付けることをお奨めする。
おれの知識はこの程度だ。
0217nobodyさん
2009/12/13(日) 12:34:51ID:???0218nobodyさん
2009/12/13(日) 12:56:34ID:???しました。
ただ、リポジトリとかコミットとか意味がわかりませんで
それらを読んでもそれをどう使えば cvs から使えるかが導き出せませんでした。
0219nobodyさん
2009/12/13(日) 13:04:25ID:???ttp://www.google.co.jp/search?q=viewvc&lr=lang_ja&ie=utf-8&oe=utf-8
0220nobodyさん
2009/12/13(日) 13:14:42ID:???0221196
2009/12/13(日) 13:19:08ID:iFkYaR3P>>196の正規表現だと、最初と最後にしかマッチしないというのが問題なんです。
>>2,4
は2と4が抜き出せますが、
>>2,4,6
は2と6で、
>>2,4,6,8
は2と8しか抜き出せません。
どのように修正すればいいでしょうか?
0222nobodyさん
2009/12/13(日) 13:25:03ID:???0225196
2009/12/13(日) 17:31:01ID:iFkYaR3Pバリデーションに使用するだけなので、レスの置き換えは想定していません。
0226nobodyさん
2009/12/13(日) 17:47:20ID:???0227196
2009/12/13(日) 18:06:05ID:iFkYaR3Pだめです。
<?php
preg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);
print_r($match);
Array ( [0] => 2,6,18,11 [1] => 2 [2] => 11 )
0228nobodyさん
2009/12/13(日) 18:17:04ID:???0229nobodyさん
2009/12/13(日) 18:20:12ID:???君も頑固だねpreg_matchじゃダメっていってるのに
preg_match_all('/(>*?-?\d+)/', '2,6,18,11', $match);
print_r($match);
0230nobodyさん
2009/12/13(日) 18:22:07ID:???移動してください。
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
正規表現 Part6(@ム板)
http://pc12.2ch.net/test/read.cgi/tech/1241537764/
0231196
2009/12/13(日) 18:36:47ID:iFkYaR3Pできました。ありがとうございます。
ほかの方も、正解はありませんでしたがありがとうございました。
ただ、なぜだめなのかいまいちよくわかりません。
私は限界ですが、がんばればうまくいきそうな気がします。
0232196
2009/12/13(日) 18:41:44ID:iFkYaR3P試したら、,2>4みたいな変なものにもマッチしますね。
あくまでもバリデーションなので、
>>2,4などにはマッチしてほしいですが、不正なものははじきたいです。
0233nobodyさん
2009/12/13(日) 18:45:59ID:???preg_match_all('/>*?(\d*\-?\d+)/', '2>4,>>6-9,18,11', $match);
print_r($match);
0234196
2009/12/13(日) 19:07:59ID:iFkYaR3P改良し、限界と感じたのでお助けを請うているのです。
バリデーションの意味を勘違いされていると思いますが、2>4は弾くべきなのです。
私が求めているものは、>>2,3,4などのあくまでベーシックなレスのみで、ほかには必要ありません。
0235nobodyさん
2009/12/13(日) 19:30:27ID:???改良されちゃいましたか
もうあなたはこのスレのレベルを超えているように感じられます
申し訳ございませんが、他を当たって頂けますでしょうか?
こちらもよりご満足頂ける回答ができるよう日々精進して参りたいと思っております
0236nobodyさん
2009/12/13(日) 19:50:24ID:???レスにマッチするものとか書いてるくせに
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
のどこがするのか聞きたい
何で>が入ってないの?適当に書いとけば誰かがやってくれるとおもってるんでしょ
0237nobodyさん
2009/12/13(日) 19:54:50ID:???0240196
2009/12/13(日) 20:21:24ID:iFkYaR3P>適当に書いとけば誰かがやってくれるとおもってるんでしょ
私が真剣にやったものを適当と判断されるのは勝手ですが、
誰かの助けを借りるスレではないんですか?
ちょっと修正しましたが、やっぱり1と2しか出てきません。
preg_match('/(\d+)(?:,(\d+))+/', '>>1,3,10,2', $match);
0241nobodyさん
2009/12/13(日) 20:25:41ID:???0244nobodyさん
2009/12/13(日) 20:27:15ID:???あなたは他力本願なんですよ
0245nobodyさん
2009/12/13(日) 20:29:05ID:???0246nobodyさん
2009/12/13(日) 20:31:13ID:???OKwaveだ
0247196
2009/12/13(日) 20:31:58ID:iFkYaR3Pあなたも学習してください。
>>229では2>4みたいな意味不明なレスにもマッチします。
私のは下らない質問ですが、下らない回答はいいです。
0248nobodyさん
2009/12/13(日) 20:32:03ID:???0251nobodyさん
2009/12/13(日) 20:36:02ID:???229 名前:nobodyさん[sage] 投稿日:2009/12/13(日) 18:20:12 ID:???
>>277
君も頑固だねpreg_matchじゃダメっていってるのに
これ試験にでるお
0253nobodyさん
2009/12/13(日) 20:36:26ID:???0254196
2009/12/13(日) 20:37:51ID:iFkYaR3P見逃していました。
私が求めていたのはあくまでも2,4などの簡素なものですが、これで解決しそうです。
唯一の有効な回答をありがとうございました。
0255196
2009/12/13(日) 20:39:07ID:iFkYaR3P0257nobodyさん
2009/12/13(日) 20:41:29ID:???なにかallって言葉にコンプレックスでもありそうだなw
0258237
2009/12/13(日) 20:42:39ID:???何でpreg_matchを使わないでpreg_match_allを使ったのかを勉強することをおすすめします
0259nobodyさん
2009/12/13(日) 20:42:48ID:???0261196
2009/12/13(日) 20:51:19ID:iFkYaR3Pそもそも、私は複雑なレス指定を望んでいないわけですから>>を取り除くと2,4,6となりますよね?
それを2と4と6に分けるくらい、preg_match_all()でなくてもおそらくできるでしょうって訳です。
preg_match_all()の勝手なイメージとしてはたとえば
$body = <<<TEXT
>>2-4
>>4-6
>>6,9
TEXT;
のように本文中に複数現れるケースに使用することが好ましいと考えています。
単純な文字列分解ごときにallつける必要があるの勝手ことです。
■ このスレッドは過去ログ倉庫に格納されています