1 名前:nobodyさん mailto:sage [2009/02/03(火) 01:09:36 ID:???] まず読め→【PHP マニュアル】www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
601 名前:nobodyさん mailto:sage [2009/06/16(火) 17:27:04 ID:???] ですか。失礼しました でっこれはこのスレとマッチすると思うんですけど 海外からのフリースクリプトダウンロードしてもPDOをほとんど使って無いんですよ なぜですか?
602 名前:nobodyさん mailto:sage [2009/06/16(火) 18:15:13 ID:???] Manualのサンプルじゃ足りないの? さておき、質問の答えは「今のところわざわざPDOを使う理由が無いから」じゃないかなぁ。
603 名前:nobodyさん mailto:sage [2009/06/16(火) 22:33:48 ID:???] >>601 ソース見たフリースクリプトってどれ?
604 名前:nobodyさん mailto:sage [2009/06/16(火) 23:00:21 ID:???] えと、見すぎであまり覚えてないのですが・・・ ほとんどhotscriptからです
605 名前:nobodyさん mailto:sage [2009/06/17(水) 01:01:12 ID:???] 適当に挙げてみてもらえると参考になるんだけど。 合計では約いくつ?
606 名前:nobodyさん mailto:sage [2009/06/17(水) 10:46:14 ID:???] まあ作られた時期も見てみ
607 名前:nobodyさん mailto:sage [2009/06/18(木) 23:33:25 ID:???] たった今澪抱き枕\7,300*4ポチったwww 今日の最終回泣くかもしんね俺www
608 名前:nobodyさん mailto:sage [2009/06/18(木) 23:34:17 ID:???] うわああああああああああああああああああああああああああああ 誤爆したああああああああああああああああああああああああああ 俺死ぬマジ死ぬw
609 名前:nobodyさん mailto:sage [2009/06/18(木) 23:39:01 ID:???] wwwwwwwwwwwwww
610 名前:nobodyさん mailto:sage [2009/06/18(木) 23:43:23 ID:???] kimoi
611 名前:nobodyさん mailto:sage [2009/06/19(金) 01:47:29 ID:???] 早速ニコ動にうpかよw 保存すますたw
612 名前:nobodyさん mailto:sage [2009/06/19(金) 01:48:10 ID:???] ごむぇん・・・誤爆・・・
613 名前:nobodyさん mailto:sage [2009/07/01(水) 11:28:04 ID:???] WordPress の質問ってここで聞いてもいいんでしょうか。 arras theme というテーマを使っているのですが そのテーマにはトップページに記事のサムネイルを表示する javascript のスライドショーがあります。 それを他のページ(たとえば普通のページなど)にも 設置することはできるでしょうか。 home.php のそれっぽい場所をコピーして single.php に貼り付ければ 出来なくもなさそうなんですが、複雑でわかりにくいのと そもそもそういう設定ができるかもしれないので質問しました。 環境はwordpress のバージョンは2.8 arras theme は最新のものを使っていて 自分は php と javascript であれば編集できます。よろしくお願いします。
614 名前:nobodyさん mailto:sage [2009/07/02(木) 11:12:33 ID:???] foo($array, 'a') なら $array['a'] を返し foo($array, 'a', 'b') なら $array['a']['b'] を返すには function foo() { // ??? } をどうしたらいいでしょうか。 func_num_args() を使って再帰で、 なんて思ったのだけど、考えがまとまらなくて。
615 名前:nobodyさん mailto:sage [2009/07/02(木) 14:46:54 ID:???] なんのためにそんな関数を $var = foo($array, 'a'); なら $var = $array['a']; でいいじゃん
616 名前:nobodyさん mailto:sage [2009/07/02(木) 15:38:49 ID:???] foo($array, $bar, $baz) と書くんだったら $array[$bar][$baz] でいいよね。 foo($array, array('a', 'b')) を $array['a']['b'] にするんだったら foo($array, $arr_keys) みたいに渡したいのかなとも思うんだけど。
617 名前:614 mailto:sage [2009/07/02(木) 15:41:46 ID:???] >>615-616 E_ALL 環境で isset() が面倒なんので、 foo 内で isset して値を返したり、 値があるか判定するのを作ろうと思って。
618 名前:nobodyさん mailto:sage [2009/07/02(木) 16:47:20 ID:???] >>617 foo:セットされてないときfalse,セットされているときはその配列の内容が返る $arr["a"]["b"]["c"] = "hoge-c"; $arr["a"]["b"]["d"] = "hoge-d"; $arr["a"]["b"]["e"] = "hoge-e"; var_dump(foo($arr,"a", "b")); // result array var_dump(foo($arr,"a", "b","c")); // resurt string var_dump(foo($arr,"a", "c")); // resutl false var_dump(foo($arr,"b")); // result false function foo() { $cnt = func_num_args(); $var = func_get_args(); $arr = $var[0]; for ($i=1; $i<$cnt; $i++) { if (!isset($arr[$var[$i]])) return false; $arr = $arr[$var[$i]]; } return $arr; }
619 名前:614 mailto:sage [2009/07/02(木) 16:55:15 ID:???] >>618 最高です。。。 ありがとうございます!
620 名前:nobodyさん mailto:sage [2009/07/02(木) 21:49:43 ID:???] せっかく5.3から省略三項演算子が使えるようになったというのに
621 名前:nobodyさん mailto:sage [2009/07/03(金) 06:14:31 ID:???] echo "<input type=hidden name=※>"; のような、出力するHTMLタグ内の※の部分に変数を置きたいのですが、 今までname=".$aaa.">のように". ."の間に変数名を入れて繋いでいたところ、 たまたま違う人がname={$aaa}>と{ }で囲っているのを見つけました。 変数の中身を{ }で参照できるのは納得できたのですが、 ". ."で囲う場合、変数ではなくname=".session_name()."のようにできるところを { }で囲う場合はどうすればよいでしょうか。 PHP5
622 名前:nobodyさん mailto:sage [2009/07/03(金) 06:15:55 ID:???] {}で参照なんかできないよ
623 名前:nobodyさん mailto:sage [2009/07/03(金) 06:21:26 ID:???] とするとタグの途中に変数とか関数の戻りを表示したいときどうつなげるのが普通なんでしょう ". ."は超自己流なんで定番が知りたく。
624 名前:nobodyさん mailto:sage [2009/07/03(金) 06:23:18 ID:???] マニュアルか他のアプリのコードでも見てみれば?
625 名前:nobodyさん mailto:sage [2009/07/03(金) 06:31:04 ID:???] いくつかの他アプリで{ }と・・・・
626 名前:nobodyさん mailto:sage [2009/07/03(金) 06:36:58 ID:???] じゃそうすればいいんじゃね?
627 名前:nobodyさん mailto:sage [2009/07/03(金) 06:39:26 ID:???] すみませんでした もうちょい詳しい人に聞いてみます
628 名前:nobodyさん mailto:sage [2009/07/03(金) 06:40:56 ID:???] 死ね低脳w
629 名前:nobodyさん mailto:sage [2009/07/03(金) 06:45:36 ID:???] echo '<input type="hidden" name="',session_name(),'>';
630 名前:nobodyさん mailto:sage [2009/07/03(金) 08:57:30 ID:???] >>621-622 まあできるかできないかで言えばできる
631 名前:nobodyさん mailto:sage [2009/07/03(金) 10:55:19 ID:???] PHP は { } で関数と定数が埋め込めないのがダサい
632 名前:nobodyさん mailto:sage [2009/07/03(金) 11:43:51 ID:???] そんなものにまで対応させてたら文字列リテラルをパースするのにもっと時間がかかってしまう
633 名前:nobodyさん mailto:sage [2009/07/03(金) 11:50:14 ID:???] だいいち{}で変数が埋め込めてるわけじゃないし。 埋め込めてるのはダブルクオーテーションの機能だろ {}は区切り文字なだけ
634 名前:nobodyさん mailto:sage [2009/07/03(金) 12:48:46 ID:???] >>632 " や ' 以外の括り文字でもあればいいのかもね。 それとは別に Perl や Ruby の q| | とかもほしいなぁ。
635 名前:nobodyさん mailto:sage [2009/07/03(金) 23:23:32 ID:???] 613ですが自己解決しました。 プラグインで smoothview というのがあったので そのインターフェースを改造しました。
636 名前:nobodyさん mailto:sage [2009/07/04(土) 07:55:20 ID:???] もしかしてsmartyなんじゃないの? smartyって{}を多用するよね。
637 名前:nobodyさん mailto:sage [2009/07/05(日) 21:23:19 ID:???] powerd by ***** と表示しなくてもいいCMSはありませんか?
638 名前:nobodyさん mailto:sage [2009/07/08(水) 11:36:42 ID:???] すいません、こちらで質問していいのかどうかわからないんですが レンタルサーバの設定では、PHPを「FastCGI アプリケーションモード」で動かしているらしいのですが 結構頻繁に「The FastCGI process exceeded configured activity timeout」ってエラーが出ます。 サーバ会社に聞くと、「FastCGIに対応したコードを記述してないからです」と言われたのですが、 当方、参考書を見ながら作成しているのですが、どこにもFastCGIについて書かれておらず どこかにその対応コードなどが記載されているような参考にできるサイトを知っている方はいらっしゃらないでしょうか?
639 名前:nobodyさん mailto:sage [2009/07/08(水) 11:48:42 ID:???] >>638 _______ __ // ̄~`i ゝ `l | / / ,______ ,_____ ________ | | ____ TM | | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>> \ヽ、 |l | | | | | | | | ``( (. .| | | | ~~ `、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二='' ヽヽ___// 日本 _____ _____ ______ _______ | ウェブ | | イメージ | | グループ | | ディレクトリ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ._________________ |FastCGI PHP │・検索オプション └────────────────┘・表示設定 | Google検索 | I'm Feeling Lucky | ・言語ツール  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○ウェブ全体から検索 ◎日本語のページを検索
640 名前:nobodyさん mailto:sage [2009/07/08(水) 11:52:55 ID:???] たんに処理時間が長くてタイムアウトしているんじゃないかなぁ
641 名前:nobodyさん mailto:sage [2009/07/08(水) 11:59:11 ID:???] >>638 すいません、すでにいろいろとぐぐってはいるんですが サーバ側でFastCGIを導入する方法ばかり記載されており、PHPでサイトを作る際の注意点などが記載されているものがなく 困っております。 そこで、そのような記載があるサイトがないかお尋ねしたのですが、やはり難しいのでしょうか。
642 名前:nobodyさん mailto:sage [2009/07/08(水) 12:01:18 ID:???] ActivityTimeout=300
643 名前:nobodyさん mailto:sage [2009/07/08(水) 12:11:40 ID:???] >>642 ありがとうございます。 タイムアウトの設定を変える内容のようですが、そちらはPHPファイルのどの当たりに記載すればよろしいのでしょうか? そのコードがレンタルサーバ会社の言う、こちらが記載すべき「FastCGIに対応したコード」というものなのでしょうか。 なんどもお聞きしてしまって申し訳ありません
644 名前:nobodyさん mailto:sage [2009/07/08(水) 12:37:53 ID:???] FCGIext.iniだよ
645 名前:nobodyさん mailto:sage [2009/07/08(水) 12:55:07 ID:???] >>644 ありがとうございます。 調べたところ、レンタルサーバの管理上FCGIext.iniの編集はこちらではできないようになっているようです わからないことばかりなので、もうすこしぐぐったりして基礎知識から勉強をしなおそうと思っています ご助言をしていただいた方々、ありがとうございました
646 名前:nobodyさん mailto:sage [2009/07/08(水) 14:16:07 ID:???] PHPを始めたばかりでどうしてもよくわからない点があります。 考え方といいますか、流れを教えてください。 XHTMLとCSSで縦2分割サイトを考えており、左に配置したドロップダウンリストから選択、 右側に内容表示というよくあるパターンです。内容はMySQLから取り出す予定です。 ここでわからないのが、内容の表示位置の指定です。 MySQLのデータとCSSタグを一緒に出力すればよいのでしょうか? 根本的な勘違いをしているような気がしてならないのですが、どこが勘違いなのかも よくわからないです。
647 名前:nobodyさん mailto:sage [2009/07/08(水) 14:34:54 ID:???] MySQLのデータとHTMLタグを一緒に出力して CSSでその位置を指定すればいいのでは
648 名前:nobodyさん mailto:sage [2009/07/09(木) 12:14:47 ID:???] prototype.jsのAjax.Updaterを使えば簡単なんじゃないか。 推奨はしないけど。
649 名前:nobodyさん mailto:sage [2009/07/09(木) 13:19:44 ID:???] >>647 ありがとう。 その方法だとうまくいかないのです。 サイト全体が置き換わってしまうので、結局すべてのHTMLにメニューをつけないと ダメっぽいです。 >>648 ありがとう。 いまググってみました。 たしかにやりたいことと合致します。 ただ、これから言語をマスターするので、より簡単といわれているPHPを覚えたい という気持ちがあります。JSと両方覚えれば済む話ではあるのですが、オレには キャパがないです。たぶん。
650 名前:nobodyさん mailto:sage [2009/07/09(木) 14:26:18 ID:???] >>649 iframeって手もあるな。
651 名前:nobodyさん mailto:sage [2009/07/09(木) 17:26:11 ID:???] phpを使うならJavascriptはある意味必須だよ。 連携しないと実現出来ない事も多々あるし。
652 名前:nobodyさん mailto:sage [2009/07/09(木) 18:41:50 ID:???] >>650 ありがとう。 iframe
653 名前:nobodyさん mailto:sage [2009/07/09(木) 18:48:35 ID:???] すまんそん。 >>650 ありがとう。 iframeは考えたんですけど、XHTML1.1で非サポートになり、策定中のHTML5.0でも 廃止になるということで、使わない方向を考えてました。 >>651 ありがとう。 JavaScriptも必須ですか。 まったくの初心者なので、PHPの公式マニュアルを読むだけで苦労してます。
654 名前:nobodyさん mailto:sage [2009/07/09(木) 21:36:35 ID:???] iframeなくなるの?
655 名前:age [2009/07/09(木) 22:48:26 ID:DwSsHHgt] ファイルをアップロードしmove_uploaded_fileをした時点で 強制的にサーバとPCとのコネクションを切断する事は可能ですか?
656 名前:nobodyさん mailto:sage [2009/07/10(金) 02:40:08 ID:???] >>655 exit か die で終了させちゃえばいいんじゃないの。
657 名前:nobodyさん mailto:sage [2009/07/10(金) 12:50:37 ID:???] >>654 iframeは、XHTML1.1ではすでに無いです。 W3Cの勧告でもHTML5.0で無くす方向で進めているようです。
658 名前:ユキ [2009/07/12(日) 04:36:26 ID:au+P+rHJ] 初めまして。 PHPど素人です。 インターネットで調べながらPHPの問題に取り組んでいますが、 2週間以上掛けても全く分かりません。 どのように書くのか教えていただけないでしょうか。 『EmEditor Free Version 6.00.4』とザンプを使っています。 問題は以下のとおりです。 『数値1〜9があります。全て4桁です。 9つの数字の中の最大値と最小値を出力しなさい。 負の数と5桁以上の数値が入力された場合エラーと出力する。 さらに数値1〜9のどの数値が最大値、最小値か出力しなさい。』 ループとfunctionを使うそうなんですが、どう使えばいいのか分からず、 ゼロの状態です。 皆様、お忙しいと思いますが、助けていただきたいです。 お願い致します。
659 名前:nobodyさん mailto:sage [2009/07/12(日) 05:09:19 ID:???] 宿題は自分で
660 名前:nobodyさん mailto:sage [2009/07/12(日) 08:09:56 ID:???] >>658 数値1を入力する 数値2を入力する 数値3を入力する 数値4を入力する 数値5を入力する 数値6を入力する 数値7を入力する 数値8を入力する 数値9を入力する ↓ 数値1に入れられた数値を、$aに入れる 、、、、 数値9に入れられた数値を、$iに入れる
661 名前:nobodyさん mailto:sage [2009/07/12(日) 08:11:34 ID:???] $aが4桁か調べる。 もし5桁以上なら、エラーを吐いて死ぬ。 4桁なら、こんどは、$aが負の数かどうかを調べる。 0以上なら、おk。 もし負の数なら、エラーを吐いて死ぬ。 $aのチェックが終わったら、$b、そして 、、、、$i。
662 名前:nobodyさん mailto:sage [2009/07/12(日) 08:14:51 ID:???] 次に、$a〜$iを配列に入れる。 そんで、その中の最大値を調べる(専用関数あり) そして、こんどはその配列の、最小値を調べる(専用関数あり) そんで、最大値のvalueに一致するkeyを調べて、 「この数値○が最大でした」って表示 次に、最小値がでたところのvalueのkeyを調べて、 「この数値のときに最小でした」って表示。 以上。あとは上記の仕様書をプログラマーに食わせれば ソースコードを吐く。
663 名前:nobodyさん mailto:sage [2009/07/12(日) 08:24:10 ID:???] >>660-662 それだと「さらに数値1〜9のどの数値が最大値、最小値か出力しなさい」 の設問には答えられないので、もう一工夫が必要。
664 名前:nobodyさん mailto:sage [2009/07/12(日) 08:51:58 ID:???] preg_matchでチェックとセットが同時にできる
665 名前:ユキ [2009/07/12(日) 14:48:56 ID:tG558Uf0] >>660-664 ご親切にありがとうございます!!!!! おかげさまで$aの桁を調べるまで出来ました! 書いていただいた内容をヒントにもう少し自分で頑張ってみます!
666 名前:ユキ [2009/07/12(日) 22:27:20 ID:tG558Uf0] 以下のように書いてみましたが、 これからどのようにfunctionとループを使えばいいのかどうしても分かりません。 解答、あるいはヒントを頂けないでしょうか? 度々すみません。 if($a > 9999 or $a < 0){ echo "<div>エラー</div>"; } else { echo "<div>$a</div>"; } if($b > 9999 or $b < 0){ echo "<div>エラー</div>"; } else { echo "<div>$b</div>"; } if($c > 9999 or $c < 0){ echo "<div>エラー</div>"; } else { echo "<div>$c</div>"; } if($d > 9999 or $d < 0){ echo "<div>エラー</div>"; } else { echo "<div>$d</div>"; } if($e > 9999 or $e < 0){ echo "<div>エラー</div>"; } else { echo "<div>$e</div>"; }
667 名前:ユキ [2009/07/12(日) 22:28:07 ID:tG558Uf0] if($f > 9999 or $f < 0){ echo "<div>エラー</div>"; } else { echo "<div>$f</div>"; } if($g > 9999 or $g < 0){ echo "<div>エラー</div>"; } else { echo "<div>$g</div>"; } if($h > 9999 or $h < 0){ echo "<div>エラー</div>"; } else { echo "<div>$h</div>"; } if($i > 9999 or $i < 0){ echo "<div>エラー</div>"; } else { echo "<div>$i</div>"; } $x = array( $a , $b , $c , $d , $e , $f , $g , $h ,$i ); echo " 最大値: " .max($x). "<br />\n"; echo " 最小値: " .min($x). "<br />\n";
668 名前:nobodyさん mailto:sage [2009/07/12(日) 23:06:46 ID:???] 人力ループしてから配列に叩き込むセンスに感心しすぎて何も言えない
669 名前:nobodyさん mailto:sage [2009/07/13(月) 02:32:15 ID:???] すげぇ。授業はこれまで全部受けてるの? 受けてたとしたらこの段階でこんな問題出した教師が悪い
670 名前:nobodyさん mailto:sage [2009/07/13(月) 11:10:34 ID:???] >>666 function は 一部の値だけを変えて同じ処理が続く場合に使います。 >>666-667 を良く見てみると、同じ記述が見つかりますね。 まずは、共通化できる処理をfunction化してみましょう。 ループ(for while fareach)は、 一部の値を変化させながら同じ処理を繰り返すときに使います。 同じような命令が繰り返している箇所をループ化してみましょう。
671 名前:nobodyさん mailto:age [2009/07/13(月) 18:25:41 ID:???] ローカル環境でテストするときに 実際のフルパスを書き換えないでテストできる フリーの開発ツールを前に何かで見つけたのですが ご存じないでしょうか?
672 名前:nobodyさん mailto:sage [2009/07/13(月) 18:29:50 ID:???] PEAR使うとエラーが出まくるんだけど、これって どうすればいいの?
673 名前:nobodyさん mailto:sage [2009/07/13(月) 19:15:29 ID:???] >>671 パスは設定ファイルに入れておけばいいじゃない。 完全一致を期待してるとカスタマイズとかのときにも パスの全チェックをしなきゃいけなくなるから面倒だよ。 または、Windows/OSXにもそれぞれ仮想環境ツール が出ているから、仮想環境ツールに、お目当てのOS を入れて、Explorer/Finderからコードを更新できるよう、 Sambaあたりを入れて動かしておけばいいかと。
674 名前:nobodyさん mailto:sage [2009/07/13(月) 19:16:10 ID:???] >>672 PEARのインストールができているかまずチェック。
675 名前:nobodyさん mailto:sage [2009/07/13(月) 21:11:07 ID:???] >>673 php.iniで簡単に出来ました。 ただすべてのページにbase hrefを入れているので階層めぐりは無理でしたorz どこかにコールバック関数と連携させてうまく開発出来る海外のツールがあったと思うんだけどなぁ。。 もう一度探してみます。ありがとうございました。
676 名前:nobodyさん mailto:sage [2009/07/15(水) 03:07:14 ID:???] [環境] WinXP(XAMP) + PHP5 [質問] メンバ関数をメンバ変数の連想配列にぶち込みたい。 ※2が通るような使い方をしたいのですが、やりかたをご教授いただけませんでしょうか、、、。 ---------------------------- ※1 OK function HogeFunc { echo "Called HogeFunc1"; } class HogeClass1{ public function Action() { foreaech( $m_Array as $key => $value ) { $value(); } } $m_Array = array( "HOGE_TAG", "HogeFunc1" ); //! 呼び出しOK }; ---------------------------- ※2 こいつはNG class HogeClass2 { public function Action() { foreaech( $m_Array as $key => $value ) { $value(); } } public static function HogeFunc2 { echo "Called HogeFunc2"; } $m_Array = array( "HOGE_TAG", "HogeClass2::HogeFunc2" ); //! 呼び出すとエラー } ※※エラー内容※※ Fatal error: Call to undefined function HogeClass2::HogeFunc2() in ....省略 ----------------------------
677 名前:nobodyさん mailto:sage [2009/07/15(水) 03:15:04 ID:???] 下の奴パースエラーにならないか?
678 名前:nobodyさん mailto:sage [2009/07/15(水) 03:16:29 ID:???] 上もだった。 色々ひどい。HOGE_TAG関数もないし
679 名前:nobodyさん mailto:sage [2009/07/15(水) 05:17:03 ID:???] Reflection API
680 名前:nobodyさん mailto:sage [2009/07/15(水) 10:01:02 ID:???] >>674 そういう問題じゃなくて。 PEARの書き方が古すぎて、 noticeが出まくるってこと。
681 名前:nobodyさん mailto:sage [2009/07/15(水) 15:59:14 ID:???] エラー表示の制御は基本中の基本だぞ
682 名前:nobodyさん mailto:sage [2009/07/16(木) 17:37:24 ID:???] PHPを勉強しようと思ってPHPをDLするのにサイトに行ったけど 全く繋がらないんだが俺だけかな?
683 名前:nobodyさん mailto:sage [2009/07/16(木) 18:39:37 ID:???] www.php.netやphp.netじゃつながらなかったが jp.php.net jp2.php.netとかはつながった
684 名前:nobodyさん mailto:sage [2009/07/16(木) 19:15:41 ID:???] >>683 ホントだ! これでDLして勉強できる・・・ ありがとうございます
685 名前:質問です mailto:sage [2009/07/22(水) 01:15:02 ID:???] xhtml構造で 他ページにおいてるphpを読み込むには どうしたらいいですか? いまはとりあえず、インラインとかobjectタグで 呼び出しています ほかに良い方法があればお教えください
686 名前:nobodyさん mailto:sage [2009/07/22(水) 04:17:36 ID:???] >>685 軽くエスパーして つ require
687 名前:nobodyさん mailto:sage [2009/07/22(水) 16:32:04 ID:???] すいません。超初心者ですが、配列と変数について困っています。 $ar = array(1,2); とすると Array ( [0] => 1 [1] => 2 ) と表示されるのですが、 $date = "1,2"; $ar = array($date); とすると Array ( [0] => 1,2 ) と表示されてしまいます。 $dateにはテキストボックスから自分で数字とコンマを入力して代入するようになっているのですが、 これらを配列として扱うようにするには、どのように記述すればよいのでしょうか。 申し訳ありませんがよろしくお願いします。
688 名前:nobodyさん mailto:sage [2009/07/22(水) 17:05:38 ID:???] $date = explode(",",1,2); while ($i == 0){ $date1 = mt_rand(0,1000); $date2 = mt_rand(0,1000); if ($date1 == $date[0]){ if ($date2 == $date[1]){ break; } } } $ar = array($date1,$date2);
689 名前:687 mailto:sage [2009/07/22(水) 17:05:52 ID:???] すいません、自己解決しました。 $ar = array($date); を $ar = explode(",", $date); とすることでうまく動きました。 お手を煩わせて申し訳ありませんでした。
690 名前:687 mailto:sage [2009/07/22(水) 17:07:43 ID:???] >>688 さん ありがとうございました。
691 名前:nobodyさん mailto:sage [2009/07/23(木) 00:45:19 ID:???] 685です >>686 トンです require_onceとhtaccessやっても無理でした 再度トライ中
692 名前:nobodyさん mailto:sage [2009/07/23(木) 15:34:36 ID:???] $this->name = "名前"; $this->mail = "メアド"; $this->tel = "電話"; などとあった場合、$thisの配列の中身を全部一括出力したい場合どうすればよいでしょうか
693 名前:nobodyさん mailto:sage [2009/07/23(木) 15:39:20 ID:???] var_dump($this); ちなみに配列じゃないけどね
694 名前:nobodyさん mailto:sage [2009/07/23(木) 16:15:48 ID:???] >>693 おおーこれ便利ですねー ググって類似のprint_rも覚えました ありがとうございました
695 名前:nobodyさん mailto:sage [2009/07/23(木) 16:51:40 ID:???] セッションを使ったフォームで、入力してもらったフォーム内容を確認画面に飛ばした後、 入力画面に戻って修正箇所を再入力、というような普通のフォームを作っているのですが、 修正入力のときにフォームのリセットボタンが動作しません(全消去ではなくセッションで渡された内容に戻ってしまう) スクリプトの挙動としては作った通りなので当然なんですが、機能としてどうも違うような気がします 何か解決方法はないでしょうか
696 名前:nobodyさん mailto:sage [2009/07/23(木) 17:44:36 ID:???] リセットはJSでやりゃあいいじゃん
697 名前:nobodyさん mailto:sage [2009/07/23(木) 17:57:10 ID:???] UI としてリセット機能は不要なことが多いけど
698 名前:695 mailto:sage [2009/07/23(木) 18:08:13 ID:???] なるほど、どっちもアリだと思うので両方検討してみます
699 名前:nobodyさん mailto:age [2009/07/23(木) 22:50:23 ID:???] Apache入れないでphp.exe -lって出来る方法ってありますか? Apacheを入れたPCでは現在使えています。
700 名前:nobodyさん mailto:sage [2009/07/23(木) 23:04:04 ID:???] CLI版ならできるんじゃ?
701 名前:nobodyさん mailto:age [2009/07/23(木) 23:49:44 ID:???] win zip版を落としてきて パスphp.exe -l "%1" これでダメなのです。 Apacheを入れてるときは動いてたのですが
702 名前:nobodyさん mailto:sage [2009/07/24(金) 10:45:01 ID:???] エラー文言を出さないのは釣りということ。スルーで。
703 名前:nobodyさん mailto:sage [2009/07/24(金) 18:48:34 ID:???] $_SESSION["input"] = $_POST; としてフォームからPOSTされた中身を一括して$_SESSION["input"]に放り込んでるんですが、 さらにそれを一括してhtmlspecialcharsする方法はないでしょうか 現状べた書きでずらずらっと書いてるんですがどうも美しくなく・・・ PHP5
704 名前:nobodyさん mailto:sage [2009/07/24(金) 18:57:24 ID:???] 最後$_SESSION["input"]にhtmlspecialcharsをすればいいんじゃないの?
705 名前:nobodyさん mailto:sage [2009/07/24(金) 19:15:54 ID:???] function h($data) { if (is_array($data)) { return array_map('h', $data); } else { return htmlspecialchars($data, ENT_QUOTES); } }
706 名前:nobodyさん mailto:sage [2009/07/24(金) 19:49:53 ID:???] POSTとかSESSIONじゃなくて出力用データにまとめてかけなさいよ
707 名前:nobodyさん mailto:sage [2009/07/24(金) 20:12:12 ID:???] >>705 ありがとうございます 勉強がてら意味を追いながら似たような関数も合わせて調べてるんですが、 addslashes($data); とするとフォームに"が入力されたとき\\\"と\が3つ増える怪現象にはまって脱線中ですw ググろうにも\がGoogleにエスケープされるというw >>706 本当にやりたいのはそれなんですが、出力用データがHTMLを含んでるので表示がおかしくなってしまうんです
708 名前:nobodyさん mailto:sage [2009/07/24(金) 20:16:44 ID:???] >>707 magic_quote
709 名前:nobodyさん mailto:sage [2009/07/24(金) 20:20:38 ID:???] >>707 下 普通はHTMLに出力用データを埋め込んで表示
710 名前:nobodyさん mailto:sage [2009/07/25(土) 03:07:01 ID:???] >>705 と>>708 をベースに、htmlspecialchars後の&まで&に置き換わってしまう謎を無理矢理解決して最終的にこうなりました function h($data){ if(is_array($data)){ return array_map('h', $data); }else{ return stripslashes(preg_replace("/&/i", "&", htmlspecialchars($data ,ENT_QUOTES, "SJIS"))); } } 呼び出し箇所 if(get_magic_quotes_gpc()){ $_SESSION["input"] = h($_SESSION["input"]); } 動いてはいるものの正直自信全くナシですw >>709 こっちもできるようになりたくて試行錯誤3時間 今日はできませんでしたorz 明日また粘ります 出力したいデータを詰め込んだ変数の中身はこんなかんじです $output = " <table><tr> <td>名前</td> <td><input type=\"text\" name=\"name\" value=\"".$_SESSION["input"]["name"]."\" /></td> </tr></table> ";
711 名前:nobodyさん mailto:sage [2009/07/25(土) 03:08:44 ID:???] あ、書き込んだら勝手に記号置き換えられてました >>710 の「&まで&に」は「&まで&amp;に」です
712 名前:nobodyさん mailto:sage [2009/07/25(土) 06:09:00 ID:???] >>710 下 <?php /* 〜前処理〜 */ $data['name'] = htmlspecialchars($_SESSION["input"]["name"]); ?> <table><tr> <td>名前</td> <td><input type="text" name="name" value="<?php echo $data['name']; ?>"/></td> </tr></table>
713 名前:nobodyさん [2009/07/25(土) 09:38:50 ID:njtiSjD4] &が置き換わるのは htmlspecialcharsの仕様
714 名前:nobodyさん mailto:sage [2009/07/25(土) 17:11:32 ID:???] >>712 おかげさまでできました $_SESSIONの中身を一度別の配列に放り込むのは $_SESSIONの中身をいじるべきではないから と解釈しましたがよいでしょうか >>713 ググってさっそく調べました 「そういうもの」と考えるしかないみたいですね・・・ ところで、>>710 で書いたfunctionなんですが、 フォームに\を記入するとstripslashesの作用で\が消えてしまうというトラブルに見舞われてます 該当部分の処理を順番に並べると下のようになるのですが $data = htmlspecialchars($data ,ENT_QUOTES); $data = preg_replace("/&amp;/i", "&", $data); //*// $data = stripslashes($data); これだと\が消えてしまうので、上の//*//の部分に $str = preg_replace("/\\\\/i", "\\", $str); を入れてstripslashesをだまして強引に解決している状況です なんか違和感があるのですがこれでよいものでしょうか
715 名前:nobodyさん mailto:sage [2009/07/25(土) 17:16:16 ID:???] stripslashesって何のために入れてるの?
716 名前:nobodyさん mailto:sage [2009/07/25(土) 17:35:20 ID:???] これをいれないと、なぜか画面遷移やリロードのたびにフォームに記入された\の数が倍々で増えるんです
717 名前:nobodyさん mailto:sage [2009/07/25(土) 17:48:38 ID:???] magic_quotes_gpc が効いてるだけでは
718 名前:nobodyさん mailto:sage [2009/07/25(土) 17:49:57 ID:???] うん。 あと野村監督じゃないけどバグに不思議のバグなしなので 「なぜかこうなる」はちゃんと原因探ったほうがいい
719 名前:nobodyさん mailto:sage [2009/07/25(土) 17:58:30 ID:???] >>717 なってます・・・ 支障のないところまで組み上げて1度実装用のサーバーでこの部分必ずテストしてみます とりあえず保留にして内容送信の機能先に作っちゃいますね セッションすら閉じてない状況なのでw
720 名前:nobodyさん [2009/07/25(土) 19:12:06 ID:y2BFJd1A] 配列をJavaScriptのオブジェクトにするプログラムを考えているのですが どうしても配列の深さだけ処理を繰り返す必要があります。再帰的に繰り返すにはどうしたらいいのでしょうか。 この例だと配列を2階層しか整形出来ない function makejson($array){ $return = "{\n"; foreach($array as $key => $value){ $return .= "\t".$key.":"; if(is_array($value)==true){ $return .= "{\n"; foreach($value as $key => $value_2){ $return .= "\t\t".$key.":"; $return .= "\"".$value_2."\",\n"; } $return .= "\t},\n"; }else{ $return .= "\"".$value."\",\n"; } } $return .= "}"; echo $return; exit; }
721 名前:nobodyさん [2009/07/25(土) 19:12:30 ID:y2BFJd1A] 入力例 $array = array{ 'example' => array{ 'test1' => 'value1', }, 'example1' => 'value3', } makejson($array); 出力例 { example : { test1 : "value1", }, example1 : "value3", } よろしくお願いします。
722 名前:nobodyさん mailto:sage [2009/07/25(土) 19:25:21 ID:???] >>720 www.php.net/manual/ja/function.json-encode.php
723 名前:nobodyさん [2009/07/25(土) 19:48:52 ID:y2BFJd1A] そんな便利な関数があったのねありがとう
724 名前:719 mailto:sage [2009/07/26(日) 17:13:42 ID:???] 最近皆さんにお世話になった>>719 です その後メール送信機能はすったもんだありつつなんとかなって、 実装サーバーで>>715 ,717について実装サーバーでテストしたら stripslashesがなくても問題ない(php.iniの設定が鯖とローカルで違った)ことが判明しました おかげさまで機能は全部完成しトラブルも起きてません ところで、ソースを最終チェックしてるうちに、 セッションを使ってるのにもかかわらずセッションIDを何にも利用してないことに気づいたんですがいいんでしょうかw 具体的にはhiddenで各画面にセッションネームとセッションIDを渡してはいるものの、ただ渡してるだけなんです URLの後に付加してるわけでもなく、セッションIDを評価する条件分岐があるわけでもなく・・・ クッキーオフにしても普通に動いてるんですが、なんか根本的なところでおかしかったりしないでしょうか
725 名前:nobodyさん mailto:sage [2009/07/27(月) 11:41:33 ID:???] CSRF とか大丈夫なんかな
726 名前:nobodyさん mailto:sage [2009/07/28(火) 18:19:31 ID:???] php5.2.5で、mb_send_mail()を使ってメールを送信する際、 spam扱いをなるべく避けるため第5引数で-fパラメータのReturn-Pathを設定したいのですが、 $r_path ='-f aaa@bbb.com'; mb_send_mail($to,$sub,$body,$header,$r_path); としてもエラーが出て送信できません 第5引数を外せば送信できるので第5引数が原因だと思うのですが、 対策はないでしょうか php.iniの設定は以下の通りです sendmail_from → no value sendmail_path → /usr/sbin/sendmail -t -i
727 名前:nobodyさん mailto:sage [2009/07/28(火) 19:54:00 ID:???] >>726 -fの後ろに余分なスペースがあるとか。
728 名前:nobodyさん mailto:sage [2009/07/28(火) 21:42:53 ID:???] これって何をしたいんですか?(汗 $password = sha1(md5(md5(sha1(md5(sha1(sha1(md5($_POST[password]))))))));
729 名前:nobodyさん mailto:sage [2009/07/28(火) 21:45:07 ID:???] ワロタ
730 名前:728 mailto:sage [2009/07/29(水) 00:14:01 ID:???] わかるかたいませんか?
731 名前:nobodyさん mailto:sage [2009/07/29(水) 00:18:36 ID:???] >>730 パスワードを推測されにくくしてからDBとかファイルとかに記録して おきたいんじゃないかな。パスワード文字列そのものは保存しない。 で、MD5とsha1で滅茶苦茶にした文字列をファイルとかDBに保持し ておく。 次にパスワードが合致しているかどうかを確認する場合、同じよう に、入力した内容をMD5とsha1で滅茶苦茶にした文字列と合致する かどうかをチェックする。これなら、DBやファイルに保存された文字列 を盗まれても、本物のパスワードは推測しにくいわけで。
732 名前:nobodyさん mailto:sage [2009/07/29(水) 00:30:42 ID:???] それって逆にパス文字列に戻せるのかな
733 名前:nobodyさん mailto:sage [2009/07/29(水) 00:34:01 ID:???] 戻せない
734 名前:nobodyさん mailto:sage [2009/07/29(水) 00:52:28 ID:???] 戻す必要ないしな
735 名前:nobodyさん mailto:sage [2009/07/29(水) 00:55:37 ID:???] あの青春は戻らない ハッシュのように、曖昧な記憶が残っているだけさ
736 名前:nobodyさん mailto:sage [2009/07/29(水) 00:57:34 ID:???] >>728 別にそんなことしなくても、 sha1(25) とかって書けば、25回暗号化してくれるのにな。
737 名前:nobodyさん mailto:sage [2009/07/29(水) 09:23:39 ID:???] >>736 ホント?
738 名前:nobodyさん mailto:sage [2009/07/29(水) 09:39:56 ID:???] ソノウソホント
739 名前:nobodyさん mailto:sage [2009/07/29(水) 13:45:36 ID:???] 25が暗号化されるんじゃないのか?
740 名前:nobodyさん mailto:sage [2009/07/29(水) 14:02:50 ID:???] セッションについて悩んでます ローカル環境で送信フォームをテストすると、 同一ページ内にある全てのリンクのURL末尾に自動的に セッション名とセッションIDが付加されてしまいます レンタル鯖上では起こらない現象なのですが、 どうしてローカルでだけ起こるのでしょうか
741 名前:nobodyさん mailto:sage [2009/07/29(水) 14:11:35 ID:???] >>740 session.use_cookies session.use_only_cookies session.use_trans_sid これらの値をphpinfoで比較してみて。 session.use_trans_sidが有効だと、 coockieが使えない時に、URLの末尾に自動的にセッションIDを付加する。
742 名前:740 mailto:sage [2009/07/29(水) 14:23:22 ID:???] >>741 >session.use_trans_sid ありがとうございます ビンゴでした 一発で治りました 秀樹感激
743 名前:nobodyさん [2009/07/29(水) 14:57:52 ID:YfqDSQPl] この性器表現の意味分かる人教えて。 !preg_match("/^$type\.\w+\.php$/", $entry)
744 名前:nobodyさん mailto:sage [2009/07/29(水) 16:59:17 ID:???] >>743 $typeで始まって、そのあとピリオド、そのあとに英数字が1文字以上続いて.phpで終わる ちょっと質問なんだけど、オブジェクトのデストラクタ中で__getとか__setとかのマジックメゾットが正常に機能しない挙動があるんだけど、これってマジックメゾットだけなのか、他のメゾットも正常に機能しない可能性があるのか・・・ 一応テストした限りでは正常な機能を失ったのは__getと__setだけなんだけど・・・
745 名前:nobodyさん mailto:sage [2009/07/29(水) 17:23:30 ID:???] >>744 ごめん勘違い
746 名前:nobodyさん mailto:sage [2009/07/29(水) 19:47:14 ID:???] >>744 さんきゅ
747 名前:nobodyさん mailto:sage [2009/07/31(金) 09:32:14 ID:???] 童貞ですが何か?
748 名前:nobodyさん mailto:sage [2009/07/31(金) 18:48:49 ID:???] PHPのゲームってどれくらい負荷かかるのですか?
749 名前:nobodyさん mailto:sage [2009/07/31(金) 19:11:43 ID:???] PHPを何に使っているかによる。 ADVゲームの画面切り替えに使っているのなら、 それほど負荷はかからない。 リアルタイムの多人数同時プレイゲームのデータ を常に送信しつづけるサーバーとしてPHPを使って いるのなら、負荷はかなりのものになる。
750 名前:nobodyさん mailto:sage [2009/07/31(金) 20:55:23 ID:???] なるほど ありがとうございます
751 名前:nobodyさん [2009/08/01(土) 23:44:33 ID:FfAyQxIr] 初心ですいません。今PHPで複数のサイトの更新情報を表示できるrssをつくりたくて やっと表示できたソースがあったんですが、↓のやりかただと更新時間順に表示されなくて、 URL順になってしまいます。 $rss = array('http://○○','http://○○','http://○○'); これ以上ぐぐっても答えが出そうにないのでお知恵をお貸しください
752 名前:nobodyさん mailto:sage [2009/08/01(土) 23:52:02 ID:???] RSSを表示できるなら、その内容をパースすることもできるだろう。 パースして各RSSの更新日時を取得、それを順に並べて出力すりゃいい。
753 名前:nobodyさん mailto:sage [2009/08/02(日) 10:58:28 ID:???] 微妙にスレチなんだけど、このスレの凄腕達はPHP開発環境使ってる? var_dumpでブラウザに毎回出力してたんだがさっき自称凄腕に失笑された
754 名前:nobodyさん mailto:sage [2009/08/02(日) 12:27:20 ID:???] デバッグするならZendStudio、とりあえずさっと作って動作確認するなら秀丸+ブラウザorコマンドライン
755 名前:nobodyさん mailto:sage [2009/08/02(日) 12:28:46 ID:???] >>753 つ FirePHP
756 名前:nobodyさん mailto:sage [2009/08/02(日) 15:17:53 ID:???] var_dumpを笑う者はvar_dumpに泣く じっちゃんがよく言ってた
757 名前:nobodyさん mailto:sage [2009/08/02(日) 15:24:41 ID:???] 俺なんてブラウザでprint_rですけど
758 名前:nobodyさん mailto:sage [2009/08/02(日) 16:16:05 ID:???] フリーのIDEがZendFWに完全対応してくれるならいいんだけど・・・
759 名前:nobodyさん mailto:sage [2009/08/03(月) 09:48:18 ID:???] リモートデバッグとかステップ実行したいときはPDTだけど 普段はPHPエディタ+tortoisesvn デバッグ表示はVar_Dump::display(); // pearのVar_Dump あとはXdebug有効にしてる(エラー時にブラウザに色々情報でる) 凄腕じゃないのでほとんどの場合、これで十分。
760 名前:nobodyさん mailto:sage [2009/08/05(水) 23:34:19 ID:???] 公式マニュアルのミスは何処に言えばいいんだ? jp.php.net/manual/ja/function.min.php >min() は配列の中で最も大きい数値を返します
761 名前:nobodyさん mailto:sage [2009/08/05(水) 23:39:36 ID:???] >>760 ドキュメントの改善を手助けするには ttp://jp.php.net/manual/ja/about.howtohelp.php
762 名前:nobodyさん mailto:sage [2009/08/06(木) 09:46:57 ID:???] ※ただしストレスが溜まる
763 名前:nobodyさん mailto:sage [2009/08/09(日) 02:42:18 ID:???] PHPの総合開発環境で何かおすすめないですか? PHPエディタという奴は起動してすぐ落ちるのでだめでした VisualStudioみたいのがいいんだけど、やはりフリーじゃなくお金払わないとだめですかね
764 名前:nobodyさん mailto:sage [2009/08/09(日) 02:48:28 ID:???] eclips + PDT
765 名前:nobodyさん mailto:sage [2009/08/09(日) 04:26:11 ID:???] >>764 コード書いた後の出力の確認ってどんな感じになるの?
766 名前:nobodyさん mailto:sage [2009/08/10(月) 00:19:53 ID:???] 教えてください CSVから1行一件のデータを読み込み 最初のforeachの中でif文使って条件分けしたデータを配列に入れて その分けた数とforeachで表示させたいのですが 条件分けしたデータを入れる変数?配列?の宣言の仕方が分かりません $Alllist = file("data.csv"); foreach( $Alllist as $list ) {
767 名前:766 mailto:sage [2009/08/10(月) 00:22:54 ID:???] 改行間違って送ってしまった orz if( strcmp( $list, "A" ) == 0 ) $array = $list; } printf( "Count count($array)" ); foreach( $array as $wake ) {
768 名前:766 mailto:sage [2009/08/10(月) 00:25:21 ID:???] 最悪だ、2度失敗した 表示; } すみません、質問以前な事してますが よろしくお願いします m(_ _)m
769 名前:nobodyさん mailto:sage [2009/08/10(月) 00:30:52 ID:???] strcmpで条件分けしたCSVの1行だけ foreachで各列を表示したいんだよね? それでいいのでは?
770 名前:nobodyさん mailto:sage [2009/08/10(月) 00:55:07 ID:???] 推測になるが、例えばcsvデータの1列目の文字に応じて、分類したいということなら、 function group_lists($list, $key, &$group) { if (! array_key_exists($key, $group)) $group[$key] = array(); $group[$key][] = $list; } // ここから呼び出し元 $group = array(); foreach( $Alllist as $list ) { if (stripos($list, 'A') === 0) { group_lists($list, 'A', $group); } else if (stripos($list, 'B') === 0) { group_lists($list, 'B', $group); } // 以下、場合分けの数だけelse ifが続く }
771 名前:nobodyさん mailto:sage [2009/08/10(月) 01:16:15 ID:???] submitボタンが押されたらフォームの内容を ファイルに書き込むプログラムを作りました。 a.php ----------------------------------------------------- if($_POST['submit']) { writeData(); } ----------------------------------------------------- これは正常に動いているのですが、 a.phpからb.htmlなどにページ移動し、ブラウザの戻るボタンで戻ると 再度POSTデータが送信されてファイルに書き込まれてしまいます。 これを避ける方法がありましたら、ご教授願えますか?
772 名前:nobodyさん mailto:sage [2009/08/10(月) 03:15:03 ID:???] >>770 なんで===にしてんの?
773 名前:nobodyさん mailto:sage [2009/08/10(月) 03:15:45 ID:???] >>771 Locationで飛ばすとか
774 名前:nobodyさん mailto:sage [2009/08/10(月) 06:26:50 ID:???] >>771 書き込む内容をチェックしたり、セッション使ったり 用途に合わせた選択をすればいいと思う >>772 ==を使う方が例外的だろう 普通は===を使うぞ
775 名前:nobodyさん mailto:sage [2009/08/10(月) 07:11:59 ID:???] えっ
776 名前:nobodyさん mailto:sage [2009/08/10(月) 07:30:39 ID:???] なにそれ
777 名前:766 mailto:sage [2009/08/10(月) 10:34:50 ID:???] >>769 >>770 さんレスありがとうございます まずCSV内に一致した数を表示させて その後に分類されたデータを表示させたいので 分類と表示を一緒にはできない・・・ですよね 配列を宣言して、その配列にどんどん分類したデータを追加していく C++で言うvector見たいなのはphpでは無いのでしょうか?
778 名前:nobodyさん mailto:sage [2009/08/10(月) 10:39:06 ID:???] hairetu = array(); hairetu[]="hogehoge"; hairetu[]="hagehage"; hairetu[]="tsurutsuru";
779 名前:nobodyさん mailto:sage [2009/08/10(月) 12:16:40 ID:???] == は型を無視して比較、 === は型まで同一かどうかを比較、 だったっけか
780 名前:766 mailto:sage [2009/08/10(月) 13:47:28 ID:???] >>778 ありがとうございます、うまくいきました >>779 知らなかったー
781 名前:nobodyさん mailto:sage [2009/08/10(月) 14:09:08 ID:???] >>774 普通は===を使うぞの根拠をkwsk
782 名前:nobodyさん mailto:sage [2009/08/10(月) 15:46:06 ID:???] >>781 d.hatena.ne.jp/hnw/20080606 この記事がとても参考になると思う
783 名前:nobodyさん mailto:sage [2009/08/10(月) 15:51:30 ID:???] >>782 全部マニュアルで明記されてることじゃん?? どの辺が普通なの?
784 名前:nobodyさん mailto:sage [2009/08/10(月) 15:58:42 ID:???] 粘着質な奴だな
785 名前:nobodyさん mailto:sage [2009/08/10(月) 17:08:21 ID:???] 答えられないんだw
786 名前:nobodyさん mailto:sage [2009/08/10(月) 17:24:39 ID:???] テキストファイルからURLを抽出するphpを書きたいのですが、 $source (元のテキストファイル) $result (URLリスト) とします。 phpspot.net/php/man/php/function.preg-match-all.html ここを参考に以下のコードを書きました。 // $pattern = '/http:\/\/[a-z0-9\/\-_\.]+/i'; // $pattern = '/(?:")?(http:\/\/[^\s"]+)/'; $pattern = '/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/'; preg_match_all( $pattern, $source, $maches ); fputs($pointer, count($matches[0])); fputs($pointer, "\n"); for ( $i=0; $i< count($matches[0]); $i++ ) { fputs($pointer, $maches[1][$i]); } 色々パターンを変えてやってみても、結果はいつも0(何もマッチしない)です。 これ以外の方法でも構わないので、テキストからURLリストを作る方法を教えてください。 よろしくお願いします。
787 名前:nobodyさん mailto:sage [2009/08/10(月) 18:31:55 ID:???] >>782 string型同士でも10e0とか数字比較されるのは知らなかった。 これは危険だな。
788 名前:nobodyさん mailto:sage [2009/08/10(月) 20:09:42 ID:???] >>786 ひょっとして $source = 'hoge.txt'; とかじゃないよね? preg_match_allの第2引数は検索対象となる”文字列”だからね?
789 名前:nobodyさん mailto:sage [2009/08/10(月) 20:11:45 ID:???] 型まできちんと意識するときは===使うけど、意識するまでもないときは普通に==使うなあ。 まあ用心とか念のためとかいわれたらそう言う考え方もあるよね、だけど。
790 名前:nobodyさん mailto:sage [2009/08/10(月) 20:17:14 ID:???] 型を意識しなくてもいい言語だからこそ型に関連するバグに嵌るんだよな
791 名前:770 mailto:sage [2009/08/11(火) 00:47:34 ID:???] >>772 いまさらだが、striposは、見つからなかった場合、falseを返す。 == 0 とした場合、0文字目かfalseかを判断出来ないため、=== 0とした。
792 名前:786 mailto:sage [2009/08/11(火) 11:34:24 ID:???] >>788 そうやってました。 っていうことは、$sourceから一行づつ文字列引っ張ってpreg_matchでチェックしていくんですかね。 どう書けばいいんだ… CかC++なら一瞬で終わるのに…
793 名前:786 mailto:sage [2009/08/11(火) 11:37:04 ID:???] おそらく$sourceから fgetsでラインを取りだすと思うんですが、行はどうやって指定するんですか? (ポインタをどうやって進めるんですか?)
794 名前:nobodyさん mailto:sage [2009/08/11(火) 11:45:01 ID:???] $source = 'hoge.txt'; $pattern = '/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/mi'; preg_match_all( $pattern, file_get_contents($source), $maches ); print_r($maches);
795 名前:786 mailto:sage [2009/08/11(火) 11:46:06 ID:???] <?php $pointer=fopen("./book/memo", "r"); //ファイルを開きます $line = fgets($pointer); //内容を取り出します echo $line; //画面に内容を表示 fclose($pointer); //ファイルを閉じます ?> こういうクソサンプル載せてるサイトってなんなんだろう… 全く意味がないw
796 名前:786 mailto:sage [2009/08/11(火) 11:48:25 ID:???] >>794 さん ありがとうございます。 file_get_contentsがキモだったんですね。
797 名前:nobodyさん mailto:sage [2009/08/11(火) 11:48:48 ID:???] お前が言うな
798 名前:nobodyさん mailto:sage [2009/08/11(火) 12:29:46 ID:???] ワロタ
799 名前:nobodyさん mailto:sage [2009/08/12(水) 11:34:05 ID:???] Apache で聞くべきか悩んだのですがここで。 .htaccess で php_value mbstring.func_overload 0 と書いても設定が変わりません。試しに php_value mbstring.func_overload = 0 と書くとエラーになるので .htaccess は読まれているようです。 ( mod_rewrite などは動いている ) 解決策をご存知の方はいらっしゃいませんか。
800 名前:nobodyさん mailto:sage [2009/08/12(水) 11:41:53 ID:???] ini_get("mbstring.func_overload"); はいくつ?
801 名前:799 mailto:sage [2009/08/12(水) 11:54:07 ID:???] >>800 7 なので 0 にしたくて
802 名前:nobodyさん mailto:sage [2009/08/12(水) 13:46:11 ID:???] >>801 だからよ、7ってことはその.htaccessが効いてないってことじゃないか。
803 名前:799 mailto:sage [2009/08/12(水) 13:47:48 ID:???] >>802 なので何でだろう、と。 Apache スレの方がいいですかね。
804 名前:nobodyさん mailto:sage [2009/08/12(水) 14:04:17 ID:???] ini_set してまたini_getするとどうなる?
805 名前:nobodyさん mailto:sage [2009/08/12(水) 14:05:09 ID:???] AllowOverrideがNoneになってるとか?
806 名前:nobodyさん mailto:sage [2009/08/12(水) 14:05:24 ID:???] そもそも環境は?バージョンとか。 一部レンタルサーバじゃその変更使えないとか書いてるサイトもみかけたぞ
807 名前:799 mailto:sage [2009/08/12(水) 14:44:31 ID:???] みなさん、いろいろとありがとうございます。 >>804 mbstring.func_overload は PHP_INI_PERDIR なので ini_set() できないだろと思いつつ、試してみましたが 7 のままです。 >>805 あ、それ怪しい、と期待したのですが AllowOverride All Options All でした…。 >>806 自分のパソコンの実験サーバです。 Apache/2.0.63 + PHP 5.2.9-1 ( Windows Vista ) とりあえず php.ini の mbstring.func_overload = 0 をしてますが、 古いアプリが 7 を期待しているのがあって、普段は 7 がいいんです…。
808 名前:nobodyさん mailto:sage [2009/08/12(水) 15:16:49 ID:???] いやまあAllowOverrideはrewrite効いてるって書いてるから無いでしょ。 とりあえずこっちで試す限り普通に変更できるので、どこかで上書きしてるか 変更しないようになってるのでは。 インストールした直後の設定に戻しても同じかな
809 名前:799 mailto:sage [2009/08/12(水) 15:37:31 ID:???] >>808 ですよね。 何かの見落としだと思うので クリーンな環境で試してみます。
810 名前:nobodyさん mailto:sage [2009/08/12(水) 21:21:14 ID:???] 今日初めてSmartyを使ってみたのですが、ブラウザで開くと文字化けしてしまいます。 phpとtplの文字コードはEUC-JPで、tplの出だしは <HTML lang="ja"> <HEAD> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP"> となっています。 そいやphpで書いてた時も同じものをprintしたんじゃだめで、 header( "Content-Type: text/html;charset=EUC-JP" ); と書かないと文字化けしたんですけど、関係あるでしょうか?どうやって解決すればいいんでしょう。
811 名前:nobodyさん mailto:sage [2009/08/12(水) 21:23:16 ID:???] 続き mbstring.internal_encoding = EUC-JP になっています。
812 名前:nobodyさん mailto:sage [2009/08/12(水) 21:27:49 ID:???] 更に追記 ブラウザでエンコーディングを日本語:EUC-JPに指定すると文字化けが直ります 日本語:自動判別にすると文字化けします
813 名前:nobodyさん mailto:sage [2009/08/12(水) 21:56:23 ID:???] 冒頭に美乳と書く
814 名前:nobodyさん mailto:sage [2009/08/12(水) 22:01:02 ID:???] >>810 ブラウザに送られるHTTPヘッダの情報に異なった文字コード宣言が入っているため FirefoxはHTTPヘッダとHTML文書に異なる文字コードが宣言されている場合、HTTPヘッダを優先する header()はHTTPヘッダを送信する関数のため、header()を利用した場合は再現しない
815 名前:nobodyさん mailto:sage [2009/08/13(木) 01:01:40 ID:???] なるほど。で、どうすればいいんでしょうか
816 名前:nobodyさん mailto:sage [2009/08/13(木) 10:20:29 ID:???] default_charset は?
817 名前:nobodyさん mailto:sage [2009/08/13(木) 21:55:45 ID:???] php.iniの中にdefault_charsetの設定がありません。これが原因でしょうか? バージョンによってはないものなんでしょうか?追加するとしたらどこにすればいいんでしょう。 ぐぐって出てくる解説では最初から入っていることが前提となってるっぽいですが。
818 名前:nobodyさん mailto:sage [2009/08/13(木) 21:59:48 ID:???] 適当な位置にdefault_charset = EUC-JPを追加してみたけどだめでした。 こりゃあきらめるしかないか。
819 名前:nobodyさん mailto:sage [2009/08/15(土) 14:05:38 ID:???] mixiのメッセージが届いたら、 「○○さんから届いたよ」っていうメッセージが デスクトップに表示されるっていうプログラムを作りたいんですが、 「メッセージを受け取った時に実行する」にはどうしたらいいんでしょう?
820 名前:nobodyさん mailto:sage [2009/08/15(土) 14:22:52 ID:???] pc11.2ch.net/test/read.cgi/php/1167984858/l50 マルチ?
821 名前:nobodyさん [2009/08/17(月) 17:42:19 ID:YF5t01fc] ハリコの虎とかがむしゃらのようなスクリプトって公開されていますでしょうか?
822 名前:nobodyさん mailto:sage [2009/08/17(月) 17:47:12 ID:???] 何だろうと思ったらエロ画像掲示板なのか ぼく18歳未満なのでこれ以上調査できません><
823 名前:nobodyさん [2009/08/18(火) 10:55:27 ID:4md56gGq] 質問です。 <?php $test="てすと"; ?> <html><body> <?=$test?> </body></html> これが表示されるサーバーと表示されないサーバがあるのですが、 どういう理由で違いが出るのでしょうか? どこかサーバー側の設定が違うのでしょうか? 宜しくお願いします。
824 名前:nobodyさん mailto:sage [2009/08/18(火) 10:58:12 ID:???] >>823 short_open_tag
825 名前:nobodyさん [2009/08/18(火) 11:14:03 ID:4md56gGq] >>824 ありがとうございました。 無事、表示できるようになりました。
826 名前:nobodyさん mailto:sage [2009/08/18(火) 15:33:36 ID:???] ショートオープンタグは、 オフにしたほうがいい。 もし開発環境で、オンで、 そのまま開発して、 それでもし本番がオフだったら、 書いたコードがPHPとして 実行されずに、ソースが丸見えになる。
827 名前:nobodyさん mailto:sage [2009/08/18(火) 15:36:44 ID:???] 俺の、ゆめは、将来のうちに 連れとか中間と、いっしょに、連合組んで 関東を統一することである。 学校出たら、トオルんとこの溶接、手伝って 金ためてアストロか、シーマを、迷ってるが買って、 単車も改造して、バリバリいい音出して走る。 俺は、ずっと将来現役で、走り続ける事が、夢である。 これ思い出した
828 名前:nobodyさん mailto:sage [2009/08/18(火) 19:47:38 ID:???] レンタ鯖がカスタマイズしたphp.iniの設置認めてるんですが、 こういう場合php.ini全文をupするものなのか、それとも変えたい部分だけを log_errors = On みたく書いてそれだけをphp.iniの名前でupするものなんでしょうか
829 名前:nobodyさん mailto:sage [2009/08/18(火) 20:10:14 ID:???] >>828 レンタル鯖のマニュアル読んだほうがいい。 一概にどうとは言えないと思うよ。
830 名前:nobodyさん [2009/08/19(水) 13:19:33 ID:rHPCm5Kh] すいません、質問いいですか? 【OS名】 linux 【PHPのバージョン】php5.1.6 【WEBサーバ】 Apache 【質問内容】 function send_to_smart($data1, $data2 ,$mode){ //パターン1 if($mode+0 == 0){ $request = "GET /aaaaa/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n"; send_request($request); //パターン2 }elseif($mode+0 == 1){ $request = "GET /bbbbb/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n"; send_request($request); } $fp = fsockopen("*****.jp",80); fputs($fp, $request); while (!feof($fp)) { $line .= fgets ($fp,128)."\n"; } fclose ($fp); } 上記の感じでソケット送信のプログラムを作ってます。 ・パターン1と2で別々にデータを送信してる ・2回とも情報送ってるはずなのに、受け取り側ではパターン1しか受け取れてない。 ・パターン2はデータが入っていないのではなく、リクエスト自体が来ていない。 ・2回ともレスポンスは取れている。ソケットオープンも問題なし。 パターン2で送れない理由がさっぱりわかりません。 これで、なんか原因や解決策判ったりしますか?
831 名前:nobodyさん mailto:sage [2009/08/19(水) 13:22:35 ID:???] send_request関数が無いので何とも
832 名前:nobodyさん mailto:sage [2009/08/19(水) 13:24:22 ID:???] マルチだったのか。乙
833 名前:nobodyさん mailto:sage [2009/08/19(水) 14:29:22 ID:???] <?php $mes =" <html> <head><title>aaa</title></head> <body>aaa</body></html>"; echo $mes; ?> たったこれだけのスクリプトがFirefoxでだけエラー起こす鯖があるんだけどなんでだろう アドオンは当然全部切った ↓エラーメッセージ 501 Method Not Implemented GET to /test.php not supported. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
834 名前:nobodyさん mailto:sage [2009/08/19(水) 14:36:00 ID:???] 正しくヘッダ出してないからじゃね
835 名前:nobodyさん mailto:sage [2009/08/19(水) 14:38:06 ID:???] クッキー消せだって
836 名前:nobodyさん mailto:sage [2009/08/19(水) 14:57:27 ID:???] ありがとう クッキー消したらうまくいった クッキーなんて使ってないスクリプトなのになんでだろ・・・
837 名前:nobodyさん mailto:sage [2009/08/20(木) 01:28:48 ID:???] file_get_contentsとか、curl_execとかでPOST送信した場合、 相手から302が返ってくると遷移先にGETで送ってくれやがります POSTで再送できないの?
838 名前:nobodyさん mailto:sage [2009/08/20(木) 09:59:34 ID:???] RFC2616
839 名前:nobodyさん mailto:sage [2009/08/20(木) 23:15:54 ID:???] >>838 「POSTして302が返ってきたら遷移先にもPOSTで送れって書いてあるのに 誰も守ってくれなかったから仕方なく303と307作った」 って読めるんだが違うの? その本来の302の動作をさせたかったんだが。 とりあえずZend_Httpのstrictredirectsでできるのはわかったんだが、できれば標準関数で行いたかった。
840 名前:nobodyさん mailto:sage [2009/08/21(金) 15:54:18 ID:???] 他人がつくったPHPアプリをメンテしているんですけど、スパゲッティになっています。 それで、どのPHPファイルが読み込まれるのかを調べたいんですけど、そのような機能はPHPにありますか。 つまり require_once() した時にそのファイル名をログファイルに出力させたりとか、そういうかんじの機能です。 よろしくお願いします。
841 名前:nobodyさん mailto:sage [2009/08/22(土) 03:08:28 ID:???] >>840 ・配列のぐろーばる変数をつくる ・あらゆるPHPファイルの戦闘でグローバル変数に自分のファイル名を追加させる ・最後辺りで print_r する
842 名前:770 mailto:sage [2009/08/22(土) 03:44:58 ID:???] >>840 使ったこと無いけど、inclued_get_dataはどう? マニュアル見た感じ、取得出来そうなきがする jp.php.net/manual/ja/intro.inclued.php
843 名前:nobodyさん mailto:sage [2009/08/22(土) 12:27:40 ID:???] >>841 全ファイルの先頭に追加するならそんなことしなくてもecho __FILE__すればいいだけじゃないのか・・・
844 名前:nobodyさん mailto:sage [2009/08/24(月) 00:53:18 ID:???] 画像への権限について質問があります。 画面からファイル(画像)がアップロードされた場合に test/img/test.jpg という風にファイルを保存しています。 また、ファイルがアップロードされたタイミングでファイルの権限を640に設定し そのままでは外部からアクセス出来ない様に設定しています。 ここで質問なのですが、A.phpのページにパスワードを入力しそのパスワードが 正しい場合のみそのクライアントからは、アップロードされたファイル(ここでは、 test.jpg )に アクセス出来る様にしたいのですが何か良い方法はありますか?
845 名前:nobodyさん mailto:sage [2009/08/24(月) 01:29:01 ID:???] >>844 コード上の認証と絡めるなら、画像のURLをPHPにして、 パラメータでどの画像か判別させればいいのでは。 PHPからは、image なんちゃらの content-type ヘッダを 吐き出して、そのあとバイナリを送ればいいだけ。
846 名前:nobodyさん mailto:sage [2009/08/24(月) 01:40:50 ID:???] >>845 ごめんなさい。ちょっと難しいです。 何か参考になるサイトがあれば教えて頂けますでしょうか?
847 名前:nobodyさん mailto:sage [2009/08/24(月) 06:22:07 ID:???] マニュアルみながらBASIC認証なりセッションなりやればいいんじゃね
848 名前:nobodyさん mailto:sage [2009/08/25(火) 00:24:14 ID:???] >>844 test.jpg を、ブラウザからはアクセスできないフォルダに置く。 (できないサーバーもある) それで、phpから、そのjpgを呼び出して表示するように すればよい。 1.phpにアクセスすると、 その1.phpが、test.jpgを呼び出す感じ。 直接test.jpgにブラウザからはアクセスできない。 それで、1.phpに、パスワード認証をかけておいて、 パスワードが一致したら、ログイン成功、にして、 セッションでその情報をもちまわせばよい。
849 名前:nobodyさん mailto:sage [2009/08/25(火) 14:05:57 ID:???] オンラインチャットを作りたいのですが、一から言語を覚えて作るのは難易度高いでしょうか プログラミングはvbとhtmlしか経験ありません
850 名前:nobodyさん mailto:sage [2009/08/25(火) 14:11:57 ID:???] >>849 技術的にはCometとかになるだろうから インフラ的に無理 自鯖使うならいいけど 難易度的には難しくはないしその辺にサンプルも転がってるだろう
851 名前:nobodyさん mailto:sage [2009/08/25(火) 14:22:31 ID:???] 1行掲示板みたいなので、javascriptで30秒リロードとかでいいんじゃねーの?
852 名前:nobodyさん mailto:sage [2009/08/25(火) 14:26:06 ID:???] いつの時代のチャットだよw
853 名前:nobodyさん mailto:sage [2009/08/25(火) 14:31:29 ID:???] >>850-851 ありがとうございます インフラなら問題ありません vbでLAN上のチャットなら作ったことがあるので ほかの言語で作り直すのはどのくらい難しいのか 経験者の方からみてやめておいたほうがいいのかをご助言いただけるとうれしいです
854 名前:nobodyさん mailto:sage [2009/08/25(火) 14:40:32 ID:???] VBでクライアントアプリ作って、 PHPでデータ受けて返すのを作れば 完成なんじゃないか
855 名前:849 mailto:sage [2009/08/25(火) 15:14:15 ID:???] >>854 一応ブラウザ上で動かしたいもので、すみません
856 名前:nobodyさん mailto:sage [2009/08/26(水) 00:56:09 ID:???] VBの経験があるならクライアントにSilverlight使えばいいんじゃない
857 名前:nobodyさん mailto:sage [2009/08/26(水) 05:55:55 ID:???] cURLに関しての質問です。 やりたいこと: 自分のホームページ上からヤフオクへログイン。 現状: mixiへのログインは出来たのですが、ヤフオクが出来ずに躓いてます。 mixiへログインすると正常にcookieも書き出してくれるのですが、 ヤフオクへアクセスを試みると Empty reply from server というエラーを 吐いてしまいます。もちろんcookieも書き出してくれません。 何かアドバイスを頂けると非常に助かります。m(__)m (長くなるのでスクリプトは次レスで。)
858 名前:857 mailto:sage [2009/08/26(水) 05:57:44 ID:???] >>857 の続きです。 スクリプト: <?php // POSTデータ準備 hiddenで送ってるデータが非常に多いので視認性のため一部割愛 $post_data[".u"] = "2c2vi55595i07"; $post_data[".v"] = "0"; $post_data[".challenge"] = "bwDQLWdW58F9ZAsaWVZwpkkumuzc"; $post_data["hasMsgr"] = "0"; $post_data[".chkP"] = "Y"; $post_data[".done"] = "auctions.yahoo.co.jp/jp "; $post_data[".protoctl"] = "" ; $post_data["login"] = "MYID"; $post_data["passwd"] = "MYPASSWORD"; $post_data[".persistent"] = "y" ;
859 名前:857 mailto:sage [2009/08/26(水) 05:59:10 ID:???] >>858 の続きです。 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://login.yahoo.co.jp/config/login?"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); $result = curl_exec($ch); if ($result === false) { // エラーが発生した場合の処理(現在ここでエラーを吐きだして終了する。) print curl_error($ch); exit(); } // ログインが成功してたらトップページへ接続 curl_setopt($ch, CURLOPT_URL, "auctions.yahoo.co.jp/jp/ "); $result = curl_exec($ch); curl_close($ch); //取得結果を出力する。 echo $result; ?> 以上です。
860 名前:nobodyさん mailto:sage [2009/08/26(水) 06:10:12 ID:???] フィッシング詐欺?
861 名前:849 mailto:sage [2009/08/26(水) 06:25:22 ID:???] >>856 今日図書館にいって調べてみます ありがとうございました