1 名前:nobodyさん [2009/03/09(月) 02:14:28 ID:HyrthkeE] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 81 pc11.2ch.net/test/read.cgi/php/1234958956/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
525 名前:nobodyさん mailto:sage [2009/03/22(日) 11:46:58 ID:???] >>484 バージョン管理システムを導入するといいです >>496 いくつかのIDEでは/**と入れて改行すると自動で作ってくれます EclipseのPHPプラグインあたりだと 最初に関数を定義してからその上に/**を入れて改行すると 下の関数を見て引数があったら@param 返り値があったら@returnを生成してくれます その他については必要であったら自分で記述するか デフォルトの値として設定可能なものなら設定するしかありません
526 名前:nobodyさん [2009/03/22(日) 11:49:05 ID:dhNIUg3n] 多次元配列へのアクセスを動的にやりたいのですが、 どうすればいいですか? get_multi_array($array,array('hoge','fuga','poge')) →$array['hoge']['fuga']['poge']を取得 こういう動作をさせたいのです
527 名前:nobodyさん mailto:sage [2009/03/22(日) 12:30:00 ID:???] >>492 =499=521=523=524 立場が悪くなって第三者のフリをしようとしてるけど外してるの図
528 名前:nobodyさん mailto:sage [2009/03/22(日) 12:43:51 ID:???] >>527 邪魔なんだよね〜 これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
529 名前:nobodyさん mailto:sage [2009/03/22(日) 12:56:54 ID:???] >>528 無視できない時点で同類だって教わらなかったの? というより自演バレバレだよ初級者君(笑)
530 名前:nobodyさん mailto:sage [2009/03/22(日) 12:57:11 ID:???] おまえらケンカしろ byひきこもり塾っぽいの いいんだよ byスレ回り先生 自作自演する若者はためが無い by湯浅誠 自作自演格差社会 〜492のレス能力格差がスレッドを引き裂く >>528 は、新自由主義者 何でも排除して、格差を作ろうとする
531 名前:nobodyさん mailto:sage [2009/03/22(日) 13:10:43 ID:???] >>529 邪魔なんだよね〜 これ以上やるなら専用スレ立ててやるからそっちで共食いしてくれ
532 名前:nobodyさん [2009/03/22(日) 14:07:27 ID:ofSdd/CM] モバイルからなのでID固定できませんが質問です "<a href='".$value."'>"などとしたときに htmlspecialcharsだけでは変数にscript:〜が含まれていた場合に回避できませんが 変数の前に"sample.com/ "とURLがあれば問題ないのでしょうか 実際Firefox,safariなどでは普通にnot foundになります
533 名前:nobodyさん mailto:sage [2009/03/22(日) 14:09:38 ID:???] >>526 こんなのどう?連想配列でも多分問題ないと思う。 <?php function get_multi_array(array $a, array $keys) { $tmp = &$a; foreach ($keys as $key) { if (! is_array($tmp) || ! array_key_exists($key, $tmp)) return null; $tmp = &$tmp[$key]; } return $tmp; } // 以下テスト $array =array( array( array(1,2,3), array(4,5,6), ), array( array(7,8,9), array(11,12,13), array(14,15,16) ) ); var_dump(get_multi_array($array, array(0, 1, 2)));
534 名前:nobodyさん mailto:sage [2009/03/22(日) 14:32:22 ID:???] >>529 は見えない敵と戦ってるとみた
535 名前:nobodyさん mailto:sage [2009/03/22(日) 14:33:52 ID:???] こんな過疎板で煽り合って自分が上にしたい奴ってうつ病だろな
536 名前:nobodyさん mailto:sage [2009/03/22(日) 15:07:18 ID:???] >>535 よくぞ見抜いた・・ 社会不適合者な俺万歳
537 名前:nobodyさん [2009/03/22(日) 17:29:33 ID:XWTxCtFo] test
538 名前:nobodyさん [2009/03/22(日) 17:35:05 ID:XWTxCtFo] <form action="log/200902.htm" method="POST"> <input type="text" name="title" value=""><br> <textarea cols="80" rows="7" name="text"></textarea> <input type="submit" value="send"> </form> <?php $title="<h2>".$_POST["title"]."</h2>"; $text='<div class="text">'.$_POST['text'].'</div>'; if ( get_magic_quotes_gpc()) { $title = stripslashes($title); $text=stripslashes($text);} $text = nl2br($text); $log = 'log/200902.htm'; $lock = 'lock.txt'; $lock_fp = fopen($lock,"w"); flock($lock_fp,LOCK_EX); $old_log = file_get_contents($log); $fp = fopen($log,"w"); fwrite($fp,$title); fwrite($fp,$text); fwrite($fp, $old_log); fclose($fp); flock($lock_fp,LOCK_UN); fclose($lock_fp); ?> これ、とあるサイトから引用してきたスクリプトなんですけど、どうやっても$_POSTの値を取得できずにlog/200902.htmの内容が<h2></h2><div class="text"></div>と内容が空になってしまいます。 POSTの値を取得するにはどうしたらいいんでしょう?どなたか知識のある方、ご教授下さい。
539 名前:nobodyさん mailto:sage [2009/03/22(日) 17:37:44 ID:???] とりあえず、<?php の直後で var_dump($_POST);exit;
540 名前:nobodyさん mailto:sage [2009/03/22(日) 17:39:58 ID:???] それと form のアクションプロパティはそれでいいのか?>action="log/200902.htm" 自身に送るなら空白
541 名前:nobodyさん mailto:sage [2009/03/22(日) 17:50:34 ID:???] >>535 よくぞ見抜いた・・ 社会不適合者な君万歳
542 名前:nobodyさん [2009/03/22(日) 17:52:24 ID:XWTxCtFo] 早速ありがとうございます。var_dump($_POST);exit;としてみたのですがarray(0) { }としか表示されません... formのアクションプロパティは合ってるかと思いますが…。log/200902.htmというファイルに書き込みたいので。
543 名前:nobodyさん mailto:sage [2009/03/22(日) 17:55:25 ID:???] formのactionには データを渡すスクリプトのパスを書くんだよ どのファイルに書き込むかとかは、 スクリプトの方で処理すること $_POSTの中身が空の配列ってことは、 データが渡されてないってこと
544 名前:nobodyさん [2009/03/22(日) 18:02:21 ID:XWTxCtFo] あ!formのaction属性を空にしてみたらこんな表示が出ました。 array(2) { ["title"]=> string(4) "test" ["text"]=> string(4) "test" } これはデータが渡されてるということなんでしょうか。しかしlog/200902.htmの中身は相変わらずです…。
545 名前:nobodyさん mailto:sage [2009/03/22(日) 18:09:39 ID:???] exitしてるからログは書き込まれないよ それはそうとまずHTMLを理解しないと
546 名前:nobodyさん [2009/03/22(日) 18:12:30 ID:XWTxCtFo] すみません…。あまりにも無知でした。exitすると処理が終了するということはリファレンスサイトで見たはずなのに…。恥ずかしいです。 HTMLにも理解がありませんでした。重ね重ね恥ずかしいかぎりです…。
547 名前:nobodyさん [2009/03/22(日) 18:17:48 ID:XWTxCtFo] できました!ご教授下さった方のいう通りにしたらlog/200902.htmに書き込むことができました! 本当に無知な私にここまで親身になってくれてありがとうございました。本当に感謝します。 また何かわからないことがあったら自分で調べて、それでもわからなかったらまたこのスレにお世話になると思います。その時はどうか暖かい目で見てやってください…
548 名前:nobodyさん mailto:sage [2009/03/22(日) 18:27:06 ID:???] ログファイルがhtmってのなんだかな〜
549 名前:nobodyさん [2009/03/22(日) 18:34:08 ID:XWTxCtFo] はい。htmlにさせて頂きました...
550 名前:nobodyさん mailto:sage [2009/03/22(日) 18:45:54 ID:???] いやそういうことをいってんじゃないんだけど まあいいや
551 名前:nobodyさん mailto:sage [2009/03/22(日) 19:52:51 ID:???] 普通はログはテキストのまま、つまり記事本文だけを保持する。 例えば2chは、以下のようなテキスト形式でデータを保存している(本当は違うんだが、まあ割愛)。 nobodyさん<><>2009/03/22(日) 18:34:08 ID:XWTxCtFo<> はい。htmlにさせて頂きました... <> そのログファイルの内容を読み込んで、HTMLとして整形して書き出すPHPで本文を表示させるわけだ。 HTMLで保持しない理由はいくつかある。パッと思いつくのは 柔軟性 例えば、表示されるHTMLを別の形にしたいとか、RSSも書き出したい、という時に再利用しづらい。 記事削除passをつけたいとか、データ保持先をDBにしたいとか、色んな拡張性が失われたりもする。 セキュリティ 本文に<script>alert('うけけけけけ');</script>と書かれたらどうなる?とか。 どちらにせよ対策は必要なのだが、ログをHTMLとして持っていると、どこで対策すりゃいいのかが曖昧になりやすい。 容量 無駄にデカくなる。大した問題じゃないが。
552 名前:nobodyさん mailto:sage [2009/03/22(日) 20:56:06 ID:???] 実体参照化してからHTML化すれば?
553 名前:nobodyさん mailto:sage [2009/03/22(日) 23:17:35 ID:???] やり方にもよるかな ログをhtmlとして書き出す掲示板はkentも作ってたな
554 名前:nobodyさん mailto:sage [2009/03/22(日) 23:23:17 ID:???] やり方にもよるって・・ ログをHTMLとして書き出しておくのは 論外といったら失礼かもしれないけど、 明らかに保守性なさすぎじゃないか?
555 名前:554 mailto:sage [2009/03/22(日) 23:29:53 ID:???] 書き出しておく・・じゃなくて 保持しておくだった
556 名前:nobodyさん mailto:sage [2009/03/22(日) 23:30:00 ID:???] テンプレートとログを分けておいて、記録するときにテンプレートを元にhtml化すればおkだけどな
557 名前:nobodyさん mailto:sage [2009/03/22(日) 23:30:47 ID:???] XMLみたいなもんと思えば、アリじゃないかとも思う。 一件一行で、ヘッダとフッタを除いた状態で保存するなら、そんなに保守性もわるくないと思うが。
558 名前:nobodyさん mailto:sage [2009/03/22(日) 23:34:55 ID:???] 閲覧が多くて書き込みが少ないのならhtml化してもいいかな
559 名前:nobodyさん mailto:sage [2009/03/22(日) 23:43:37 ID:???] あめぞうスクリプト見れ
560 名前:nobodyさん [2009/03/22(日) 23:49:52 ID:cLpptsUH] 現在自分が作成しているPHPとMySQlを使ったログイン認証システムで 穴がないか不安になってきたので、質問します。 要点のみを記載します。 ・ID(又はメールアドレス)とパスワードをフォームに入力して、 MySQL内の情報を照合 ・正しければトークン用のコードを発行し、ユーザ情報を更新 (テーブルのtokenフィールドに作成した値を追加) ・その他、セッション変数にはログイン時のUAとIPアドレスを代入 ・各ページアクセス毎にセッション情報が正しいかをIFで調べる (会員情報編集などの場合、ユーザIDとトークンコードが正しいか照合) ・パスワードはmd5で保存 と言うことをしています。他に「これもしろ」と言うことはありますでしょうか?
561 名前:nobodyさん mailto:sage [2009/03/22(日) 23:50:51 ID:???] ソースを見せるのが早い
562 名前:nobodyさん mailto:sage [2009/03/22(日) 23:51:39 ID:???] ID(又はメールアドレス)とパスワードをフォームに入力して、 MySQL内の情報を照合 (1)この時に、SQLインジェクション対策はされているのか?
563 名前:nobodyさん mailto:sage [2009/03/22(日) 23:52:30 ID:???] md5は破られるのでsha2にしたほうが無難
564 名前:nobodyさん mailto:sage [2009/03/22(日) 23:52:40 ID:???] >>560 そういうしつもんすると>>562 みたいな質問がきりがなく出てくるのでソース出したほうが早い
565 名前:nobodyさん mailto:sage [2009/03/23(月) 00:10:54 ID:???] >>533 やっぱり再帰ですね ありがとうございました
566 名前:560 mailto:sage [2009/03/23(月) 00:16:39 ID:???] >>562 しています。まず入力値にhtmlspecialcharsをかけて DBアクセス時にmysql_escape_stringをしています。 ソースに関してですが、莫大な量になるので掲載を控えます。 それにソースや構文の組み立てを聞きたいのではなく、 自分の足りない知識・誤っている知識を指摘していただきたく思い、質問しました。
567 名前:nobodyさん mailto:sage [2009/03/23(月) 00:29:46 ID:???] ( ゚д゚)
568 名前:nobodyさん mailto:sage [2009/03/23(月) 01:02:57 ID:???] >>566 >まず入力値にhtmlspecialcharsをかけて らめぇええええ
569 名前:nobodyさん mailto:sage [2009/03/23(月) 01:35:27 ID:???] >>565 否。ただのループ。
570 名前:nobodyさん [2009/03/23(月) 02:53:59 ID:RPfvHZ0v] test.txt > 0123456789 test.php > $fp = fopen("test.txt", "r"); > while(!feof($fp)) { > print fread($fp, 1); > flush(); > sleep(1); > } > fclose($fp); test2.php > $fp = fopen("test.txt", "w"); > fwrite($fp, "aaaaaaaaaa"); > fclose($fp); > > $fp = fopen("test.txt", "r"); > print fread($fp, 10); > fclose($fp); test.phpが走ってる最中にtest2.php走らせても test.phpの出力にtest2.phpの書き換えは反映されなかった。 読み出しに関してはルーズな実装してもOKって事?
571 名前:nobodyさん mailto:sage [2009/03/23(月) 05:27:55 ID:???] flushされるタイミングの都合で、たまたまじゃないかなぁ。
572 名前:nobodyさん mailto:sage [2009/03/23(月) 05:29:12 ID:???] 良く見たら明示的にflush は、してるのか。 ごめん。
573 名前:nobodyさん mailto:sage [2009/03/23(月) 22:30:27 ID:???] >>560 とは別人で悪いんだけど、気になったからよこやり入れさせて。 >>568 ID(もしくはメールアドレス)は、必ずしもブラウザで表示するわけじゃないから、 ・DB内の情報と照合する時 → mysql_escape_string(mysql_real_escape_string) ・ブラウザに表示する時 → htmlspecialchars みたいにする、ってことでおk? じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'<'って保存されてしまうからっていうことかな。 見当違いだったらすまん。
574 名前:nobodyさん mailto:sage [2009/03/23(月) 22:33:45 ID:???] 連続書き込みスマソ >>573 訂正 じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'&lt;'って保存されてしまうからっていうことかな。
575 名前:nobodyさん mailto:sage [2009/03/23(月) 22:38:01 ID:???] そうやって保存されてしまうからっていうのと、 保存されてしまうことによって再利用するとき不便になるからだね
576 名前:nobodyさん mailto:sage [2009/03/23(月) 22:58:16 ID:???] test
577 名前:nobodyさん mailto:sage [2009/03/23(月) 23:07:14 ID:???] >>575 なるほど、いい勉強になった。 ありがとう。
578 名前:nobodyさん [2009/03/23(月) 23:45:08 ID:uVBii4+5] サーバを再起動したらapacheのerr.logに PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' と同じようなログがたくさん出ます。 でも、該当のファイルは存在します 何が原因でしょうか?
579 名前:nobodyさん mailto:sage [2009/03/23(月) 23:53:02 ID:???] >>573-575 でもさ、ID・メールアドレスを更新する時に<を使う場合ってあるの? IDはだいたい半角英数字だし、メールアドレスもそうでしょ?
580 名前:nobodyさん mailto:sage [2009/03/24(火) 00:01:55 ID:???] どこでサニタイズするかは勝手だが、 100%ってことはないので出口でサニタイズしろってエロい人が言ってた
581 名前:nobodyさん mailto:sage [2009/03/24(火) 00:17:34 ID:???] サニタイズニダ!
582 名前:nobodyさん mailto:sage [2009/03/24(火) 00:41:05 ID:???] >>578 PHPのバージョンは? DOS窓から、php -mや、php -iって打っても、エラー出る? 5.2.9-1なら > Please note that the cURL related function is disabled when open_basedir or safe_mode enabled. ってニュースが出てたけど、関係しそうなとこある?
583 名前:nobodyさん mailto:sage [2009/03/24(火) 04:21:02 ID:???] すいません。PHP勉強して半年になります。順調に進んでいたのですが echo $a[0] = 'aaa'; echo $a[0][0] = 'news'; こうすると、なぜかバグルのですが、なぜですか?
584 名前:nobodyさん mailto:sage [2009/03/24(火) 04:25:00 ID:???] そりゃechoですからね 出力だけしてくださいよ
585 名前:nobodyさん mailto:sage [2009/03/24(火) 04:25:16 ID:???] それは、君が>>1 を読めない子ちゃんだから。
586 名前:nobodyさん mailto:sage [2009/03/24(火) 04:26:30 ID:???] すいません、なぜこれでバグになるかわからないんです echo $a[0] = 'aaa'; echo $a[0][0] = 'news'; print_r($a); ↓結果 Array ( [0] => jaa )
587 名前:nobodyさん mailto:sage [2009/03/24(火) 04:26:58 ID:???] >>584 おまいさんは、輪をかけてドアホーみたいだけどな
588 名前:nobodyさん mailto:sage [2009/03/24(火) 04:28:52 ID:???] >>586 バグってないじゃん。仕様通り 文字列の1文字目を置換してる
589 名前:nobodyさん mailto:sage [2009/03/24(火) 04:30:23 ID:???] バグって増すよ <?php $a[0] = 'aaa'; $a[0][1] = 'jjjjk'; print_r($a); Array ( [0] => aja )
590 名前:nobodyさん mailto:sage [2009/03/24(火) 04:32:35 ID:???] >>589 バグじゃないよ。 $a[0]は文字列 $a[0][1]はその2文字目を代入しようとしてる文字列の1文字目で置換せよ だから、$aは1要素配列のまま。 そんだけ。
591 名前:nobodyさん mailto:sage [2009/03/24(火) 04:34:04 ID:???] >>590 そうなるんですか。知りませんでした。今までやってきて そんな配列あったんですか 適当に使ってました
592 名前:nobodyさん mailto:sage [2009/03/24(火) 04:34:50 ID:???] >>591 マニュアルに書いてあるよ。
593 名前:nobodyさん mailto:sage [2009/03/24(火) 04:35:22 ID:???] 自分は初心者なので、配列=箱としか書いてあるものをみたことが なかったんです。助かりました>>1-589
594 名前:nobodyさん mailto:sage [2009/03/24(火) 04:39:30 ID:???] 変数を array で初期化しないで、いきなり配列として使うのは、どうも生理的・本能的にダメ。
595 名前:nobodyさん mailto:sage [2009/03/24(火) 04:42:07 ID:???] arrayで初期化しても置き換えられますよ 自分初心者だったのでこんなのあったんだとびっくりしました
596 名前:nobodyさん mailto:sage [2009/03/24(火) 04:46:27 ID:???] 残念ながら>>594 が言ってるのは次元の違う話だ PHP使いは適当がモットーだから気にしなくていい
597 名前:nobodyさん mailto:sage [2009/03/24(火) 04:49:11 ID:???] >>596 そうですか。今まで掲示板とブログ作ったんですか そのような配列の使い方を書いてあるのがみたことなくて 気になりました
598 名前:nobodyさん mailto:sage [2009/03/24(火) 07:45:46 ID:???] 2重配列って呼び方であってる?
599 名前:nobodyさん mailto:sage [2009/03/24(火) 07:53:32 ID:???] 2次元配列じゃないよ。そのケース。 単に、1次元配列の要素が文字列で その文字列にstring offsetでアクセスしてるだけ
600 名前:586 mailto:sage [2009/03/24(火) 08:34:05 ID:???] 難しいなあそんなの出てこなかった 初心者本には、 あくまで 配列は個々の箱だと意識してました データ型を指定しなくていいように、箱も好きに使っていいと 思ってました。
601 名前:nobodyさん mailto:sage [2009/03/24(火) 08:34:37 ID:???] そりゃ初心者本だからだろ
602 名前:nobodyさん mailto:sage [2009/03/24(火) 08:52:05 ID:???] >>589 バグ >>590 は下のコードと勘違いしてるんじゃないのかね $str = "12345"; $str[0] = "a"; echo $str; // a2345
603 名前:nobodyさん mailto:sage [2009/03/24(火) 08:55:32 ID:???] >>602 いや、だからそれとやってることは一緒だろ
604 名前:nobodyさん mailto:sage [2009/03/24(火) 08:56:49 ID:???] 602が勘違いしてるんじゃないのかね
605 名前:nobodyさん mailto:sage [2009/03/24(火) 09:01:48 ID:???] コンパイラ言語はデータ型ちゃんと指定するから 静的な変数(配列)の型定義というのは 型に応じたメモリ領域を確保するということ(Javaでint型なら4バイトlong型なら8バイト等) PHPはインタプリタだからその辺を動的にやってるわけ この辺をちゃんと理解してないと正しいイメージはわかない 配列は箱ではなく連続したデータというイメージが正しい メモリ上ではそのように配置されている
606 名前:nobodyさん [2009/03/24(火) 09:45:45 ID:VfITkfEn] >>582 versionは5.2.3だったと思います C:\php>php -m としたら、「isqlt09a.dllが見つからなかったため、このアプリケーションを開始できませんでした。 インストールし直すと解決する場合があります」 とアラートが出ました C:\php>php -m PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_ifx.dl l' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_oci8.d ll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc i.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc i8.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pspell .dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_sybase _ct.dll' - 指定されたモジュールが見つかりません。 C:\php>php -pでも同じ結果です 見つからないって言われてるモジュール、extの中にちゃんと存在してるんですが、、
607 名前:586 mailto:sage [2009/03/24(火) 19:06:44 ID:???] 誰かプロの人 $aiueo[0] = "a"; $aiueo[0][0] = "aa"; とPHPで入れると置き換わったりする理由を書いて下さい
608 名前:nobodyさん mailto:sage [2009/03/24(火) 19:09:04 ID:???] >>606 記憶違いかも知れんが、依存関係の都合でライブラリを読み込む順序によって、 そんなメッセージがでたかも。 以前、Windows版のPHPってサンプルのphp.iniの順番だとエラーが出てずいぶん 悩んだことがある。
609 名前:nobodyさん mailto:sage [2009/03/24(火) 20:03:31 ID:???] >>607 >>1
610 名前:nobodyさん mailto:sage [2009/03/24(火) 20:04:24 ID:???] >>606 書いてないから確認しとくけどinclude_pathの設定は?
611 名前:nobodyさん mailto:sage [2009/03/24(火) 20:09:50 ID:???] >>607 置き換わる理由は仕様だから。それだけ。 $a[0] = 'abc'; $as = 'abc'; if ($a[0][0] === $as[0]) { echo ' $a[0][0] equal $as[0]' . " <br />\n"; } echo "target :" . $as . " = " . $a[0] . " <br />\n"; echo "offset0:" . $as[0] . " = " . $a[0][0] . " <br />\n"; echo "offset1:" . $as[1] . " = " . $a[0][1] . " <br />\n"; echo "offset2:" . $as[2] . " = " . $a[0][2] . " <br />\n"; $as[1] = $a[0][1] = 'xxxxxxx'; if ($a === array($as)) { echo ' $a is array of $as' . "<br />\n"; } echo "replaced:" . $as . " = " . $a[0] . " <br />\n"; echo "offset0 :" . $as[0] . " = " . $a[0][0] . " <br />\n"; echo "offset1 :" . $as[1] . " = " . $a[0][1] . " <br />\n"; echo "offset2 :" . $as[2] . " = " . $a[0][2] . " <br />\n";
612 名前:nobodyさん mailto:sage [2009/03/24(火) 20:14:05 ID:???] >>606 併せて、php.iniで、extension_dirがC:¥PHP¥extになってるか確認してみて。
613 名前:nobodyさん mailto:sage [2009/03/24(火) 20:15:53 ID:???] すまんinclude_path関係ないね
614 名前:nobodyさん mailto:sage [2009/03/24(火) 20:36:16 ID:???] >>606 phpinfo()を実行してみて、php.iniをどこから読み込んでいるのかも確認してみて。 以前、WINDOWSディレクトリと、phpの展開先の両方に異なる設定のphp.iniを置いていて、はまったことがあるので。
615 名前:nobodyさん mailto:sage [2009/03/24(火) 20:37:10 ID:???] 始めの頃ありがちw
616 名前:nobodyさん [2009/03/24(火) 21:07:22 ID:/zsLtnA9] クラスの数が多くなってきたので(__autoloadで読み込み) 複数クラスを一つのファイルにまとめたら速くなるのではと 思うのですが、それって実際どの程度の効果があるでしょうか? まとめなくても、元来OSがファイルキャッシュするので、 あんまり変わらない気もします
617 名前:nobodyさん mailto:sage [2009/03/24(火) 21:09:24 ID:???] 計れば良いのでは?
618 名前:nobodyさん mailto:sage [2009/03/24(火) 21:18:30 ID:???] >複数クラスを一つのファイルにまとめたら速くなるのではと 再利用とか無視して一人で使うんだろうから別にいいとは思うけど それでも基本どおり1クラス1ファイルにしときな
619 名前:606 [2009/03/25(水) 00:12:15 ID:4yhBz/QX] みなさんたくさんのレスありがとうございます >>612 そうなってました >>614 C:\WINDOWS でした。正しいですよね… >>608 さんの書いてる原因かなぁ もうwindowsで作るの自体やめよっかな
620 名前:nobodyさん mailto:sage [2009/03/25(水) 00:32:37 ID:???] >616 ボトルネックがわかっていない状態でチューニングをしてはいけない。 まずは測定。 ファイル数云々というより、__autoload()の呼び出し回数が減ることによる高速化は一応期待できるかな。 マジックメソッドの類は総じて重い。 まあ、DBやファイルへのアクセスがあるならそっちがボトルネックになってるとは思うけど。
621 名前:nobodyさん mailto:sage [2009/03/25(水) 01:59:46 ID:???] >>616 環境いじれるなら、APCとか使うのが良いんじゃないかなぁと思う。 ソースコードは扱いやすい単にしておいた方が、いろいろ良いし。 自分ははクラスはモジュールぐらいの単位の方が扱いやすいんで、 1クラス1ファイルにはしてないけど。
622 名前:nobodyさん [2009/03/25(水) 11:16:26 ID:yQlt60AA] PDOで永続接続を使っている場合、prepareを使うと2回目以降の実行が効率化するんでしょうか それとも実行のたびに毎回prepareステートメントを発行するから意味無いんでしょうか
623 名前:nobodyさん mailto:sage [2009/03/25(水) 11:18:39 ID:???] prepareって接続してんの?
624 名前:nobodyさん [2009/03/25(水) 15:06:05 ID:Ijn9qBql] htmlspecialchars($var, ENT_QUOTES, 'utf-8') でhtmlエスケープしていたのですが、 アンパサンドがエスケープされるので、 数値実体参照が「&#〜;」という文字列として表示される ということが分かりました。 数値実体参照の場合は生で表示するにはどうしたらいいですか?
625 名前:nobodyさん mailto:sage [2009/03/25(水) 15:15:24 ID:???] 出力するときに&に置換すればいいじゃん