1 名前:nobodyさん mailto:sage [2008/09/20(土) 20:23:08 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 73 pc11.2ch.net/test/read.cgi/php/1220440493/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
873 名前:211 [2008/10/12(日) 17:19:51 ID:fXLt5ZTj] 標準的かどうかはよくわからないけど、変数を展開させることに拘らなければ str_replace かその関係の関数が簡単なんじゃないかな? echo str_replace(array('$foo'),array('bar'),$hoge); みたいな。 jp2.php.net/manual/ja/function.str-replace.php
874 名前:868 [2008/10/12(日) 18:18:51 ID:ZWInd4bd] >>873 ありがとうございます。 str_replace()やpreg_replace()はすべての引数で配列を指定できるのですね。 1つずつの文字列しか引数に取れないと思い込んでいたので 勉強になりました。 配列の中身の展開("{$baz[0]}"など)が必要にならない限り これを使っていきたいと思います。 皆さんありがとうございました。
875 名前:nobodyさん mailto:sage [2008/10/12(日) 20:15:22 ID:???] トーシロなんだけど このページの www.phppro.jp/school/phpschool/vol12/2 if (isset($_POST["title"]) && $_POST["title"]) って入力確認だけど、なんでissetで事足りるように見えるのに後ろに余計な物付け足してるん? 念のため聞くけど、後ろのは入力されてたらTRUEを返すんだよね? なんか見苦しくてすまない、回答いただけるとウレシス
876 名前:nobodyさん [2008/10/12(日) 20:19:57 ID:qbuV3HNr] ごめんID出し忘れた
877 名前:nobodyさん mailto:sage [2008/10/12(日) 20:20:37 ID:???] >>875 0
878 名前:nobodyさん mailto:sage [2008/10/12(日) 20:28:59 ID:???] つかissetだけでいいわな
879 名前:211 [2008/10/12(日) 20:29:53 ID:fXLt5ZTj] 「入力されてたらTRUE」の認識は正しいと思います。 何でよけいだと思ったのかな。
880 名前:211 [2008/10/12(日) 20:36:51 ID:fXLt5ZTj] あ。ごめん。俺間違ってる。 875の書き方も、877の事を考慮すると間違ってる。
881 名前:nobodyさん [2008/10/12(日) 20:37:46 ID:qbuV3HNr] 回答どうもです。 これってissetだけじゃ駄目なんですかね?
882 名前:nobodyさん [2008/10/12(日) 20:38:52 ID:qbuV3HNr] あ、そういう事か 0だと入っててもFALSEかなんかになるんですよね 回答どうもです
883 名前:nobodyさん mailto:sage [2008/10/12(日) 20:46:54 ID:???] なんねーよissetは
884 名前:nobodyさん mailto:sage [2008/10/12(日) 20:49:37 ID:???] 0だとisset通るけど後方で引っかかる array()も同じく
885 名前:nobodyさん [2008/10/12(日) 21:05:30 ID:cg/RVdaY] WEB系ってある程度きわめると 勉強することなくなるの?
886 名前:nobodyさん mailto:sage [2008/10/12(日) 21:08:42 ID:???] んなわけねーだろ。
887 名前:nobodyさん [2008/10/12(日) 21:12:53 ID:cg/RVdaY] wiki.bit-hive.com/tomizoo/pg/PHP%20CLI%2FCGI%20SAPI ここに、PHPのCGI版は、実行時に HTTPヘッダを自動で送信している、って 書いてあるけど、 自分はPHPのモジュール版を使っているのだが、 この場合はHTTPヘッダを自動で送信しているのかな? それともしていないのかな?
888 名前:211 [2008/10/12(日) 21:32:59 ID:fXLt5ZTj] 使っているのなら自分で確認できませんか?
889 名前:nobodyさん mailto:sage [2008/10/13(月) 01:00:05 ID:???] >>875 そのURLは面倒なので見てないが、変数定義があるかどうかを調べた後にその変数の正当性を調べるのは、 何らおかしい事ではないというかむしろ普通。 PHPはそこら辺いい加減な言語だから別に好きにすりゃいいが、変数が定義されているかどうか分からないケースの場合、 先にisset()で調べた方が、実行速度は上がるケースがある。未定義の変数の参照は遅い。 if (isset($_POST["title"]) && $_POST["title"]) だと、$_POST["title"]が未定義ならその後の処理は実行されない。 if ($_POST["title"]) だと、$_POST["title"]が未定義の時に遅い。まぁマイクロ秒単位の世界だがw
890 名前:nobodyさん mailto:sage [2008/10/13(月) 01:02:20 ID:???] なんで isset($_POST["title"] だけではだめなの?
891 名前:nobodyさん mailto:sage [2008/10/13(月) 01:48:34 ID:???] みんな回答ありがとう
892 名前:211 [2008/10/13(月) 07:30:16 ID:2R92n/wD] >>890 だめかどうかは知らないけど、 isset($_POST["title"]) と $_POST["title"]!="" は意味(結果)が違うからね。 必要に応じて使えばいいと思う。
893 名前:nobodyさん mailto:sage [2008/10/13(月) 07:38:41 ID:???] じゃstrlenにすれば一発でできんじゃん
894 名前:nobodyさん [2008/10/13(月) 07:46:42 ID:CGfh2V74] phpファイルで <html> <head><title>PHP TEST</title></head> <body> <?php require_once(DB.php); ?> </body> </html> というのを作ってapacheで実行したら エラーが出ました Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7 Fatal error: require_once() [function.require]: Failed opening required DB.php (include_path=.;c:\php\includes;c:\smarty\libs) in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7 と書かれていたのでC:\WINDOWS\php.iniの include_path = .;c:\php\includes;c:\smarty\libs を確認したのですが違いはなかったようです どうすればよろしいでしょうか?
895 名前:nobodyさん mailto:sage [2008/10/13(月) 07:50:19 ID:???] PEAR入れれ
896 名前:nobodyさん [2008/10/13(月) 08:05:13 ID:CGfh2V74] >>895 え?入ってないってことですか? 入れたはずなんですが
897 名前:nobodyさん mailto:sage [2008/10/13(月) 08:07:59 ID:???] include_pathがそれでいいのか良く見て考えれ。終了。
898 名前:nobodyさん [2008/10/13(月) 08:20:52 ID:CGfh2V74] >>895 か>>897 のどっち? pearは入れたはず include_pathはとりあえず言われたのをやったんですけども pear導入のときから少し変えた なにを入れたらいいの?
899 名前:211 [2008/10/13(月) 08:51:11 ID:2R92n/wD] >>898 警告メッセージってコピペですか? require_once の引数はそれで正しいですか?
900 名前:894 [2008/10/13(月) 09:13:10 ID:CGfh2V74] レスありがとうございます コピペです require_onceの引数ですが c:\php\pear\DBなので間違いではないと思います
901 名前:211 [2008/10/13(月) 09:26:59 ID:2R92n/wD] >>900 > コピペです 私の理解では、DBとphpが定数定義されていない限り、 require_once(DB.php); は require_once("DB"."php"); つまり require_once("DBphp"); という動きをします。 しかしそうだとすると、894の警告と食い違うので聞きました。 手で打ち直してないですか? 二つめの質問もつまりそういうことです。 もし私の理解が正しくなくて、require_once が DB.php を 開こうとしているなら、DB.phpが include_pathで指定されている ディレクトリのどこかにあるかどうか確認すればよいと思います。 あるいは、require_onceの引数にパスを含めて指定することも できると思います。
902 名前:894 [2008/10/13(月) 10:38:31 ID:CGfh2V74] ありがとうございます 一度帰宅してやってみます 詳しく書いて頂き大変感謝してます いつもここのスレは丁寧な方が多くて嬉しい限りです
903 名前:nobodyさん mailto:sage [2008/10/13(月) 12:24:01 ID:???] >>892 もしかすると gettypeでstringの場合とstrlenで1文字以上をチェックすれば完璧じゃね? または(string)で強制的にstringに置き換えてstrlenでチェック
904 名前:211 [2008/10/13(月) 12:37:29 ID:2R92n/wD] >>903 >>889 で書かれていることは知らなかったけど、そういうこともあると思う。 自分で isset($_POST["title"]) && $_POST["title"]!="" とか書くときの isset は Notice が出ないようにするためだな。
905 名前:nobodyさん mailto:sage [2008/10/13(月) 12:40:44 ID:???] >>903 >>893