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等)・フレームワークは各該当スレへ
598 名前:nobodyさん mailto:sage [2008/10/03(金) 19:25:49 ID:???] 自分のblogに書いといてくれ
599 名前:nobodyさん mailto:sage [2008/10/03(金) 19:26:25 ID:???] ごくろうさん
600 名前:211 [2008/10/03(金) 20:00:31 ID:XpYjXbv/] すみません。。。 pc11.2ch.net/test/read.cgi/mac/1216824430/ に似たような事例があって、いくつかわかりました。 標準でインストールされている httpd は x86_64 で動作しているようです。 アクティビティモニタ上で "Intel (64ビット)" と表示されていました。 で、oci8.so はユニバーサルバイナリにすることでロードされましたが、 その中で使っている libclntsh.dylib は i386 のバイナリしかないわけで ocitest.php をapacheに実行させたら Trace/BPT trap で失敗してました。。。 なかなか上手くいかないもんだのう。。。
601 名前:nobodyさん mailto:sage [2008/10/03(金) 20:28:26 ID:???] 嫌がらせか
602 名前:588 mailto:sage [2008/10/03(金) 21:05:21 ID:???] >>593 どうも同一のセッションIDを送ってくれるので、大丈夫ということを知り安心しました。 回答つかないかと思ってあせってたんです(;´д`) 本当にありがとうございました。助かりました。
603 名前:nobodyさん [2008/10/03(金) 22:38:52 ID:19ebb2MR] $array[0]["name"] $array[1]["name"] $array[2]["name"] となっている配列があったとして、 nameの中が空の場合、その配列を削除したいと思っています。 ひとつずつIFで条件分岐する以外で方法はないでしょうか?
604 名前:nobodyさん mailto:sage [2008/10/03(金) 23:42:28 ID:???] 機能別にすることもあるし分けないこともある。 本体とログとかさらにいくつもファイル複数あるなら分けたほうがいい気はする。
605 名前:nobodyさん mailto:sage [2008/10/03(金) 23:58:50 ID:???] >>603 なさげ。 普通にif文でやってください。 で、ついでに配列に格納する段階でどうにかするという方向性でいったら?
606 名前:nobodyさん [2008/10/04(土) 00:02:17 ID:qepvww6d] フレームワーク使ってるかってどうやってわかるんでしょうか?
607 名前:nobodyさん mailto:sage [2008/10/04(土) 00:25:18 ID:???] >>606 デフォルトのまま使えば特徴は出るがそんなのはいくらでも隠蔽できるし 使ってる本人がこのサイトはなんたらのフレームワークで構築されてます みたいな自己紹介してないとわからない
608 名前:nobodyさん [2008/10/04(土) 00:29:35 ID:qepvww6d] >>607 なるほど。 ご回答ありがとうございました
609 名前:nobodyさん mailto:sage [2008/10/04(土) 09:35:14 ID:???] どうしてもモジュール単位でクラス化していくと、 require_onceの数が多くなってしまいます。 ファイルをインクルードするためのオーバーヘッドは気にしなくて大丈夫でしょうか?
610 名前:nobodyさん mailto:sage [2008/10/04(土) 11:25:40 ID:???] >>609 ファイル数が多いならrequire_onceよりrequireを。 onceは重複チェックの分オーバーヘッドがrequireよりありんす。
611 名前:nobodyさん mailto:sage [2008/10/04(土) 16:11:14 ID:???] mailって内部的には、sendmailを起動している、って WEBの解説ページに書いてあったんだけど、 それってUNIX環境だけだよね? Windowsでは、起動しているメールサーバーソフト(mercuryとか)を 使って送信してるんだよね?
612 名前:nobodyさん [2008/10/04(土) 16:23:54 ID:qMLHDr64] wink.pncn.net/server/php_mail.php ここに、 「あとは、Apacheを再起動します。そうしないとphp.iniの設定内容が反映されません。」 って書いてあるけど、php.iniは 別にアパッチを再起動しなくても設定の変更は 反映されるよね?
613 名前:nobodyさん mailto:sage [2008/10/04(土) 16:29:09 ID:???] >>612 モジュール版のPHPはApache起動と同時にPHPも内部的に稼動させるから、 Apache起動時点でのiniになる、だから変更には再起動が必要 CGI版なら、アクセス時にPHPが起動するから再起動は必要なし
614 名前:nobodyさん [2008/10/04(土) 16:56:57 ID:qMLHDr64] xamppのPHPの場合はどっちなのかな? 自分のPHPがCGI版なのか、 モジュール版なのか、 どこを見て判定するの?
615 名前:nobodyさん [2008/10/04(土) 17:28:26 ID:qMLHDr64] 自己解決した。 oshiete1.goo.ne.jp/qa4116414.html ↑ここに書いてあった。 「phpinfo()を見る」 「ServerAPIを見る」 「Apache 2.0 Handlerとなっていたら、モジュール版」 「CGIとなっていたら、CGI版」
616 名前:nobodyさん mailto:sage [2008/10/04(土) 17:45:37 ID:???] 質問スレって絶対頭おかしいやつ多いよな 質問に答えればすぐ終わることをわざわざ関係ないレスするやつ 答えにならないレスするやつのほとんどが質問してるやつがどういう答えを求めてるかがわかってない馬鹿 このPHPスレだけじゃなくてどこの質問スレも同じ なんなんだろね? リアルが馬鹿でどうしようもないから質問しに来たやつに対して優越感にでも浸りたいのか?w
617 名前:nobodyさん mailto:sage [2008/10/04(土) 17:50:17 ID:???] スレチだが、今でもレン鯖ってPHP4使ってるとこが多いよな 4のサポートもう終わってるんだし5にしてくれよと思う
618 名前:nobodyさん mailto:sage [2008/10/04(土) 17:53:44 ID:???] >>615 自分の入れるのがどっちなのかくらい分かってから使おうぜ・・・ >>617 運営に頼むか、そんなひどいとこは使わないのが吉。
619 名前:nobodyさん mailto:sage [2008/10/04(土) 18:01:54 ID:???] >>618 いや、まだまだ殆どのとこが4じゃないかな たとえ使えてもFTP接続先が/public_html/直下だったり結構ひどいとこばかりだわ 俺の探し方が下手糞なのかもな・・・
620 名前:nobodyさん mailto:sage [2008/10/04(土) 18:05:36 ID:???] 殆どのとこって例えばどこ?
621 名前:nobodyさん mailto:sage [2008/10/04(土) 18:25:57 ID:???] >>619 PHP可と書いてるところで登録してみたらPHP4だったーってのはよくあるな >>620 いろんなとこ借りて覚えてないわ 他にはmod_rewriteが使えないとことか多いよな
622 名前:nobodyさん mailto:sage [2008/10/04(土) 18:27:49 ID:???] 覚えてないくせに「殆どのとこがPHP4じゃないかな」とかwww
623 名前:nobodyさん mailto:sage [2008/10/04(土) 18:28:45 ID:???] >>671 php4でしか動かない奴も多いからな。 「ウチのblogが急に動かなくなった、どうしてくれる!」とか クレームが来ること考えるとそう簡単には切れないべ。
624 名前:nobodyさん [2008/10/04(土) 19:02:55 ID:qMLHDr64] lh.gamesns.jp/cap.php?rand=9844254 これってどうやるの?
625 名前:nobodyさん mailto:sage [2008/10/04(土) 19:12:43 ID:???] captchaでググれ
626 名前:nobodyさん [2008/10/04(土) 21:02:35 ID:Ac3kpf8k] 簡易的なアクセス解析プログラムを作っています。 HTMLファイルからimgタグでtest.phpを読み込み、 そこで訪問者のログを取っています。 (<img src="./test.php?page=top" />←こんな感じです) その時test.phpでは header("Content-length: " . filesize('./dammy.gif')); というように1px×1pxの画像を出力しているのですが、 画像を出力しないで済む方法はないでしょうか? アクセスログの取り方はimgタグでやりたいと思っています。 分かる方いらっしゃればお願いします。
627 名前:nobodyさん mailto:sage [2008/10/04(土) 21:04:14 ID:???] ページをphpで作ればいいじゃん
628 名前:626 [2008/10/04(土) 21:34:46 ID:Ac3kpf8k] >>627 ページは原則的に静的という縛りがあります、すみません。
629 名前:nobodyさん mailto:sage [2008/10/04(土) 21:35:45 ID:???] なぜに? あと画像を出力したくない理由は? どうでもいいことは書いてるけど必要な情報が足らん
630 名前:626 [2008/10/04(土) 22:01:56 ID:Ac3kpf8k] >>629 アクセス解析のプログラムはフリーで配布する目的でして、 手間がかからないよう静的ページからでもOKにしたいのが理由です。 >画像を出力したくない理由は? 特に大きな理由はありません。 ただbodyタグ内のどこにimgタグを突っ込んでもデザインが崩れなければ最高だと思いまして。 情報の後出し申し訳ないです。
631 名前:nobodyさん mailto:sage [2008/10/04(土) 22:04:33 ID:???] >>630 やったことないけど JavaScriptとしてPHPで読み込んでみてはどうかな? <script type="javascript" href="./test.php?page=top"></script>
632 名前:626 [2008/10/04(土) 22:19:45 ID:Ac3kpf8k] >>631 ありがとうございます、解決しました! なぜかhrefをsrcに変更したところ動作しました。 javascriptでphpを呼べるんですね。 ホントにありがとうございました。
633 名前:nobodyさん mailto:sage [2008/10/05(日) 05:46:20 ID:???] たんに>>631 のhtmlのミスだな まぁそこはどうでもいいか
634 名前:nobodyさん mailto:sage [2008/10/05(日) 12:36:18 ID:???] >>626 jsでするみたいだからどうでも良い話にはなるが 1x1のサイズだとbase64エンコードして出来た文字列を内部に持たせる方が楽だぞ
635 名前:nobodyさん [2008/10/05(日) 19:21:16 ID:BsaGVD4F] PHPの世界で 「PHPマニュアル」 っていったら、 なにか公式のものがあるの? ようは固有名詞になってるの?
636 名前:nobodyさん mailto:sage [2008/10/05(日) 19:27:23 ID:???] テンプレ読まないやつは帰っていいよ
637 名前:nobodyさん [2008/10/05(日) 19:38:09 ID:BsaGVD4F] w1.nirai.ne.jp/freeze/appli/file01.html ここに書いてあるんだけど、 「6の項目は実現できませんでした。なぜうまく行かなか ったかと言うと、ブラウザのキャッシュが大きな壁だった のです。同じ画面にするとどうしても再読込あるいは次 の投票を行わないと反映されないのです。ある程度対応 策があるのですが、サーバー側のプロキシ(?)の問題も あるようで100%は無理みたいですね。あちこちで見られる アンケートもほとんど2画面ですからね。」 って書いてあるのだが、PHPでやる場合、 基本的に2画面設計にするのが業界の主流なの?
638 名前:nobodyさん [2008/10/05(日) 19:47:25 ID:BsaGVD4F] www.php.net/manual/ja/ PHPマニュアルってこれか? まさかおまえら、これ全部読んだの?
639 名前:nobodyさん [2008/10/05(日) 21:25:33 ID:BsaGVD4F] 10人で同時にプレイする CGIゲームのテストって ローカルでは限界があるのか?
640 名前:nobodyさん mailto:sage [2008/10/05(日) 21:28:43 ID:???] いや別に?
641 名前:nobodyさん [2008/10/05(日) 21:29:17 ID:BsaGVD4F] www.sound-uz.jp/php/note/basicPhp ここ読んだら、 [ステップ2] サーバにアップロードする 「今書いたPHPスクリプトファイルを、FTPソフト でサーバのブラウザでアクセスできるところにア ップロードします。CGIのようにパミッションを設定 する必要はありません。」 って書いてあるんだけど、本当にパーミッションを 設定する必要はないの?
642 名前:nobodyさん mailto:sage [2008/10/05(日) 21:32:21 ID:???] CGI版で使うならある
643 名前:nobodyさん mailto:sage [2008/10/05(日) 21:40:38 ID:???] PHPスクリプトにファイル作成をさせたりするなら、必要になることも。
644 名前:nobodyさん [2008/10/05(日) 21:49:03 ID:BsaGVD4F] なんで、Apacheモジュール版のことを、DSO版って呼ぶの?
645 名前:nobodyさん mailto:sage [2008/10/05(日) 21:51:45 ID:???] ApacheのDSOって仕組み使ってるから
646 名前:KillYouHag ◆KillYouHAg mailto:sage [2008/10/05(日) 22:12:26 ID:???] |(-_-)|
647 名前:nobodyさん [2008/10/06(月) 00:22:36 ID:szIkgH26] PHPの解説ページ見てると、ほぼ全部が mysqlと連携させましょう!ってなってるけど、別にsqlliteでも いいんだよね。
648 名前:nobodyさん mailto:sage [2008/10/06(月) 00:25:50 ID:???] もち。sqliteはまだ新しいので、解説が少ないだけ。
649 名前:nobodyさん mailto:sage [2008/10/06(月) 00:44:53 ID:???] >>638 必要になったら読むに決まってるだろ 君はセンスがなさそうだから他のことやったほうがいいよ
650 名前:nobodyさん [2008/10/06(月) 12:20:44 ID:HtdN4tAq] ファイルでX行目の内容だけ変えたりという処理を実装したいのですが、すべての行を読み込まなくてはできないでしょうか? たとえば100行あって5行目hogeをfugaに変えるだけの時はどんな処理が一番いいですか? 下のようなものしか思いつきません。 $list = explode("\n",$file); $list[4] = "fuga"; $file = implode("\n",$list);
651 名前:nobodyさん mailto:sage [2008/10/06(月) 12:23:04 ID:???] そのファイル何MBなの?
652 名前:nobodyさん [2008/10/06(月) 12:27:22 ID:HtdN4tAq] >>651 ありがとうございます。 ログのようなもので簡単に言うと2chのsubect.txtっぽいものです。 10M以下です。
653 名前:nobodyさん mailto:sage [2008/10/06(月) 12:33:17 ID:???] じゃ気にしなくておk
654 名前:nobodyさん mailto:sage [2008/10/06(月) 12:47:45 ID:???] >>652 今後デカくなる可能性もあって、気になるというなら ループとfgetsで対象の行まで処理してもいいかもな 無駄なループが出るが、ファイル全体を取り込む際のオーバーヘッドと比べて要相談
655 名前:nobodyさん [2008/10/06(月) 13:40:08 ID:szIkgH26] php.dori-mu.net/tips.html ↑ここに、 「効果的にデバッグしたい 最近PHPをはじめた方の為に、効果的なデバッ グの方法をこっそりお教えします。 統合開発環境がいまだ無いPHPのデバッグで は、要所要所で変数の値をprintされている人 が多いと思います。」 ----------------------------------------- 、、、って書いてあるけど、これって古い情報? まだIDEってないの?
656 名前:nobodyさん mailto:sage [2008/10/06(月) 13:45:05 ID:???] そんな鴨を釣るための方便
657 名前:nobodyさん mailto:sage [2008/10/06(月) 14:18:23 ID:???] IDEならPDTやaptanaがあるじゃん、釣られんなよ しかも「PHP4は早いんです!」・・・ワラタ PHP5の影もない頃の記事だな
658 名前:nobodyさん [2008/10/06(月) 16:19:40 ID:/7mWgEQF] 勉強の為にフリーで配布されてるソースを拾ってきて 自分なりに解読しているのですが、その中であまり見かけない 記述を見つけたので何をしているか教えてもらえませんか クラスの中に $this->$kw($val); と記述がありました。
659 名前:nobodyさん mailto:sage [2008/10/06(月) 16:27:05 ID:???] 質問。 -------------------------- <html> <form action="output.php" method="post"> <input type="text" name="a"></td> </form> <?php $c = $_POST['a']; print ("$c"); ?> </html> ----------------------------------------- ↑このコードなんだが、 入力フォームの画面がoutput.phpで、 そこから渡される変数を受け取って、 処理をして画面に出すファイルも、同じく output.phpなんだが、こういう、入力ファイルと、 出力ファイルが一緒、って、なんか気持ち悪いんだが、 2つのファイルに分ければすっきりすると思うんだが、 (入力が1.htmlで、出力が2.phpとか) RFC的に、っていうか、なんか規約とかガイドラインとかで 決まってたりしないの? 「同じファイルで入力と出力を混ぜるな」とか。
660 名前:nobodyさん mailto:sage [2008/10/06(月) 16:30:53 ID:???] >>658 www.komonet.ne.jp/~php/chap10.htm www.scollabo.com/banban/php/php_11.html この辺見たらわかるんでない?
661 名前:nobodyさん [2008/10/06(月) 16:33:21 ID:krVoA8nH] >>659 $_SERVER['PHP_SELF']があるくらいだし、 1つのファイルでやるのはよくあるかと てかhtmlの書き方がめちゃくちゃな気が…
662 名前:658 [2008/10/06(月) 16:36:38 ID:/7mWgEQF] >>660 ありがとうございます ただそのあたりは理解してるつもりです。 分らないのは $this->$wk($val); の部分の"->$"でアローの後の$が何なのかということなのです
663 名前:658 [2008/10/06(月) 16:39:49 ID:/7mWgEQF] 自己解決 可変ね お騒がせしました
664 名前:nobodyさん mailto:sage [2008/10/06(月) 16:41:22 ID:???] 急に態度でかくなってワロタ
665 名前:nobodyさん mailto:sage [2008/10/06(月) 16:53:21 ID:???] >>659 「んだが」使いすぎ。
666 名前:nobodyさん mailto:sage [2008/10/06(月) 16:58:10 ID:???] そこにツッコむとは通だな
667 名前:2ch偽”管理”人 ◆2ch.net/cU mailto:age [2008/10/06(月) 17:45:16 ID:???] (´・ω・`) 何げに神酉
668 名前:nobodyさん mailto:sage [2008/10/06(月) 17:50:47 ID:???] >>662 スカラー変数じゃない?
669 名前:nobodyさん mailto:sage [2008/10/06(月) 17:53:03 ID:???] >>668 いや、明らかな可変関数ですが
670 名前:nobodyさん [2008/10/06(月) 17:58:49 ID:szIkgH26] zen-cart.jp/bbs/viewtopic.php?f=2&t=3974 ここみたら、xreaって register_globalsがOn みたいなんだけど、バカなの?死ぬの?
671 名前:nobodyさん mailto:sage [2008/10/06(月) 18:01:42 ID:???] 古いサーバでしょ
672 名前:nobodyさん [2008/10/06(月) 18:07:18 ID:J8jNqfv3] screenshots.jp/ ↑こういうウェブサービスを自作したいと思います。 任意のページをブラウザで表示させ、そのスクリーンショットを取得し、 サイズや解像度を調整しサムネイルに加工するというものです。 これはレンタルサーバ(XREA)+PHPで可能でしょうか? PHPで無理なのであれば、どのような言語やツールを利用すればよいですか?
673 名前:nobodyさん mailto:sage [2008/10/06(月) 18:10:46 ID:???] 先が思いやられる・・・
674 名前:nobodyさん mailto:sage [2008/10/06(月) 18:15:43 ID:???] >>バックエンドにXやらwinやらがないと出来ん エンジンだけで正確なキャプチャは取るのは神業だからな
675 名前:nobodyさん [2008/10/06(月) 18:46:29 ID:J8jNqfv3] >>674 ありがとうございます。 やはり自宅サーバ立てるのが近道なんですかね。 でも管理コストが・・・。
676 名前:nobodyさん [2008/10/06(月) 19:13:23 ID:szIkgH26] おまいらHTMLエディター、何使ってる?
677 名前:nobodyさん mailto:sage [2008/10/06(月) 19:15:46 ID:???] なぜPHPは除外?
678 名前:nobodyさん mailto:sage [2008/10/06(月) 19:22:34 ID:???] >>676 メモ帳
679 名前:nobodyさん mailto:sage [2008/10/06(月) 19:25:24 ID:???] メモ帳
680 名前:nobodyさん mailto:sage [2008/10/06(月) 19:29:27 ID:???] メモ帖
681 名前:nobodyさん mailto:sage [2008/10/06(月) 19:49:37 ID:???] getで、 .php?id=123456 みたいなのじゃないくて 2chのスレみたいに read.cgi/php/1221909788/l50←ここ を受け取りたいんだけど、これ出来ない?
682 名前:nobodyさん mailto:sage [2008/10/06(月) 19:52:09 ID:???] >>1
683 名前:nobodyさん mailto:sage [2008/10/06(月) 19:53:22 ID:???] >>659 どっちもできるのに何故RFCで決めなければならんのだ
684 名前:nobodyさん [2008/10/06(月) 20:02:26 ID:F1nMmuDg] あだるとびでおの編集とかにぴーえいちぴーは、つかわれていますか?
685 名前:nobodyさん mailto:sage [2008/10/06(月) 20:03:52 ID:???] 使われていまsん
686 名前:nobodyさん [2008/10/06(月) 20:07:14 ID:rKAl3ZIy] サーセン。 【OS名】window xp 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 getで、 .php?id=123456 みたいなのじゃないくて 2chのスレみたいに read.cgi/php/1221909788/l50←ここ を受け取りたいんだけど、出来ないですか?
687 名前:nobodyさん mailto:sage [2008/10/06(月) 20:14:53 ID:???] できまsん
688 名前:nobodyさん mailto:sage [2008/10/06(月) 20:15:09 ID:???] テンプレ出したとこで申し訳ないがphpとは全く関係ない罠 mod_rewriteで調べてちょうだい
689 名前:nobodyさん [2008/10/06(月) 20:20:32 ID:szIkgH26] いままでHTMLエディタは TTTエディタを使っていたんだが、 こんどPHPを勉強することになって、 文字コードはかっこよく、utf-8で統一しようと思ったんだけど、 今しらべてみて、なんと、ttteditはユニコードでのファイルの保存が できないことが判明。いまどきそれはないわな。 てなわけで、ttteditを捨てることに決定。 で、ttteditみたいなエディターで、イマドキなの、一個 紹介してよ。
690 名前:nobodyさん [2008/10/06(月) 20:25:34 ID:rKAl3ZIy] >>687 cgiなら出来る?
691 名前:nobodyさん [2008/10/06(月) 20:31:29 ID:rKAl3ZIy] mod_rewriteググったら解決出来そうだった。 クエリー式(/sample.cgi?a=123&b=456) PATH_INFO式(/sample.cgi/123/456) とか言うのね。 thx!!
692 名前:nobodyさん mailto:sage [2008/10/06(月) 20:41:33 ID:???] >>689 PDT
693 名前:nobodyさん mailto:sage [2008/10/06(月) 20:47:57 ID:???] htmlエディタとかスレ違いもいいところだろ phpやるならIDE使えよ htmlの色付けやコード保管機能ぐらいならどれでもついてる ていうかhtmlなんてメモ帳で余裕ぐらいにならんと
694 名前:nobodyさん mailto:sage [2008/10/06(月) 20:50:32 ID:???] >>693 メモ帳wwwwwwwwww 好きに文字コードを指定して保存できる素晴らしいツールですね^^
695 名前:nobodyさん mailto:sage [2008/10/06(月) 20:59:52 ID:???] >>694 文字コードとかの話をしてるんじゃねえよ htmlの色付けとか補完機能とかオマケなみたいなもんで必要ないってこと あったほうが作業効率は早まるが覚えること少ないだろhtmlは
696 名前:nobodyさん [2008/10/06(月) 21:00:45 ID:szIkgH26] 自分のイメージだと、 はhtml編集ソフト。 PHPはPHP専用のIDE 、、、て使い分けてるイメージがあったんだが、 違うの?
697 名前:nobodyさん mailto:sage [2008/10/06(月) 21:01:30 ID:???] ふ、甘いぜ。漢なら、Emacs で打ちこみだろう。
698 名前:nobodyさん mailto:sage [2008/10/06(月) 21:09:21 ID:???] 俺は自社製のソフト使ってる フローチャート書けば自動的にスクリプトにしてくれるから便利
699 名前:nobodyさん mailto:sage [2008/10/06(月) 21:15:32 ID:???] >>696 htmlにphpのコードを記述していくことになるから 使い分けたりしない <?php include_once("main.php"); ?> <html> <head> <?php echo $charset; ?> <?php echo $title; ?> </head> <body> <p>こんばんわ!<?php echo $name; ?>さん!</p> </body> </html> 見たいな感じで書いたりするからな
700 名前:nobodyさん mailto:sage [2008/10/06(月) 22:39:10 ID:???] >>699 そんなコードかかねーからw
701 名前:nobodyさん [2008/10/06(月) 23:56:26 ID:szIkgH26] pc11.2ch.net/test/read.cgi/php/1204488452/720 こういうのPHPでカンタンにできるの?
702 名前:nobodyさん [2008/10/07(火) 00:04:09 ID:xy9SRLMk] 暇だから答えるか。。 >>701 無理。PHPはサーバー側のプログラムだから。ブラウザの機能に付加するしかないから FireFOxのアドオンっていうのがJavaScriptで書かれているから、それ勉強した方がいいよ。
703 名前:nobodyさん mailto:sage [2008/10/07(火) 00:04:26 ID:???] >>700 書くだろ >>699 を理解できないのはロジックが分離できてない証拠
704 名前:nobodyさん mailto:sage [2008/10/07(火) 00:08:21 ID:???] できないの?できるの? そうだよね?違う? 下らん質問繰り返してる暇があったらさっさとはじめろよグズ野郎
705 名前:nobodyさん [2008/10/07(火) 00:30:01 ID:UKq/cagT] windowsとApacheでphpのプログラムを書いているのですが <?php print_r ($_COOKIE); ?> とすると Array ( [PS] => ngnrnodnjsl5fmj8gl6ytgsks0 ) と表示されます setcookieを一度も呼び出さなくても勝手にこのPSというクッキーが発行されています これは何ですか
706 名前:nobodyさん [2008/10/07(火) 01:31:01 ID:CqpiE/lL] クッキーです。
707 名前:nobodyさん mailto:sage [2008/10/07(火) 13:07:59 ID:???] >>703 かかねーからw 今時、テンプレートエンジンとか普通使うし そんなコードを書くほうが少ない ビューとロジックを分離出来ていないのはどっちだよw デザイナーにPHPコードそのまま埋め込ませるのか?w
708 名前:nobodyさん mailto:sage [2008/10/07(火) 13:10:28 ID:???] >>701 出来るよ
709 名前:nobodyさん mailto:sage [2008/10/07(火) 13:57:53 ID:???] し・・・下らねぇ
710 名前:nobodyさん mailto:sage [2008/10/07(火) 14:01:56 ID:???] 個人なら一緒でもいいんじゃね 分けると重くなるし
711 名前:nobodyさん mailto:sage [2008/10/07(火) 14:02:11 ID:???] >>707 PHPコードも、Smartyのタグも、埋め込ませるのでは変わらないよ。 テンプレートエンジンのオーバーヘッドはSmartyなんかでは特に高くて、 >>699 のようなコードにするこでの分離も業務ではざらにあるんだよ。
712 名前:nobodyさん mailto:sage [2008/10/07(火) 14:04:40 ID:???] フレームワーク使って>>699 のような書きかたも普通にするわ
713 名前:nobodyさん mailto:sage [2008/10/07(火) 14:44:20 ID:???] >>699 普通のPG >>707 フレームワークしか触ったことの無い底辺PG ↑FA?
714 名前:nobodyさん mailto:sage [2008/10/07(火) 14:48:43 ID:???] 難しい言葉や一通りいろいろなものには触ってはいるが 本質的なことを理解していないタイプなのだろう
715 名前:nobodyさん [2008/10/07(火) 21:25:43 ID:4E7CA6TZ] 学習計画なんだけど、 素のPHPに1ヶ月、 smartyに1ヶ月、 cakephpに1ヶ月、 で合計3ヶ月で大体基本をマスターしようと 思うんだけど、どう思う?
716 名前:nobodyさん mailto:sage [2008/10/07(火) 21:28:52 ID:???] 別に・・・
717 名前:nobodyさん [2008/10/07(火) 21:35:53 ID:4E7CA6TZ] あ、もしかしたら、PEREってのも勉強しないといけないの?
718 名前:nobodyさん mailto:sage [2008/10/07(火) 21:35:56 ID:???] >>715 他の言語経験者ならいいんでない?
719 名前:nobodyさん mailto:sage [2008/10/07(火) 21:41:56 ID:???] なんでも予定通りには行かないだろうからとりあえずヤってみるべし >PERE PECLのことか?これはC言語だから取りあえずスルーでイイ 定番PECLの使い方くらいは覚えておく必要はあるな(mbstringとか
720 名前:nobodyさん mailto:sage [2008/10/07(火) 21:42:09 ID:???] >>715 長すぎ
721 名前:nobodyさん mailto:sage [2008/10/07(火) 21:42:25 ID:???] >>719 PEARのことだと思われ
722 名前:nobodyさん mailto:sage [2008/10/07(火) 22:12:54 ID:???] >>715 せいぜい一週間だろ
723 名前:nobodyさん [2008/10/07(火) 22:36:38 ID:wbjjwnhA] GDを使って、カウンターの画像を表示するようにしています。 下記のようにしているのですが、1桁の画像しか表示されません。 桁数に併せて画像を連続出力する?みたいな事って出来ないのでしょうか? $count = "1234"; $c_array = str_split($count); header("Content-Type: image/gif"); for($i=0;$i<count($c_array);$i++){ $cnt = "img/".$c_array[$i].".gif"; $image = imagecreatefromgif("$cnt"); imagegif($image); imagedestroy($image); }
724 名前:nobodyさん mailto:sage [2008/10/07(火) 22:39:54 ID:???] 何をやっとんじゃ
725 名前:nobodyさん mailto:sage [2008/10/07(火) 23:47:39 ID:???] >>723 1つのimgタグで複数の画像を同時に表示出来ないことと同じ理由だぞ・・・ 単純に4桁なら4桁で1つの画像に表示させればいいじゃん 1桁1画像にする理由があるならスマンが
726 名前:nobodyさん [2008/10/08(水) 01:45:48 ID:ij2fkFmB] アンケートをためしに作っているのですが 作り方の載っているサイトなどをみると 送られたデータを表示する際には XSSを防ぐために htmlspecialchars 使えって 書いてありますがタグなどを抜く strip_tags ではだめなんでしょうか 駄目だとしたら理由も教えてください。
727 名前:nobodyさん mailto:sage [2008/10/08(水) 02:12:39 ID:???] 変換する関数と取り除く関数じゃん
728 名前:nobodyさん [2008/10/08(水) 02:23:16 ID:ij2fkFmB] >>726 すいません。書き忘れました。 htmlspecialchars が < とかを変換する関数だっていうのは わかっているんですが、それでXSS対策になるんだったら タグを取り除いても対策になるんじゃないかと思ったんです。
729 名前:nobodyさん mailto:sage [2008/10/08(水) 02:33:36 ID:???] strip_tagsのタグの除外方法に問題があります。 onmouseoverとかのイベントハンドラをタグに入れてかけてごらん。
730 名前:nobodyさん mailto:sage [2008/10/08(水) 03:05:46 ID:???] XSSとは直接関係ない別の理由、 例えばurlをはりつけられて宣伝行為がいやだとかなら、 正規表現でurlあったら登録前にはじくようにすればええ。 最初から<>を入力禁止にすればいい。
731 名前:723 mailto:sage [2008/10/08(水) 05:22:24 ID:???] >>725 すみません、「4桁でひとつの画像」という意味が分かりません。 例えば、カウンターで「1234」という桁数を表現したい場合、 1234の画像を予め作っておかなければいけないのでしょうか?
732 名前:nobodyさん mailto:sage [2008/10/08(水) 06:33:06 ID:???] >>731 その通りです。4つ画像作るということは、 4回もHttp RequestがWeb Serverに対して発生するということですよ。
733 名前:723 mailto:sage [2008/10/08(水) 07:30:56 ID:???] 自分で調べてimagecopymergeを使って 画像をコピー・マージンする事で対処出来ました。 やはり、すべての画像を用意するのは手間ですからね。 お騒がせしました。
734 名前:nobodyさん mailto:sage [2008/10/08(水) 07:50:07 ID:???] そんなことより、 cms.c-okinawa.co.jp/ サイトが乗っ取られているぞwwwww
735 名前:nobodyさん mailto:sage [2008/10/08(水) 07:53:47 ID:???] >>734 kwsk SQLインジェクションでもされたか
736 名前:nobodyさん mailto:sage [2008/10/08(水) 08:29:31 ID:???] >>735 詳しくは俺もよく分からないが、mixiとかで大騒ぎになっているw どうやら、ネット企業らしいが、自分の会社の恥をさらけ出している。 こういう会社に誰がシステム開発を頼むであろうか、いや頼まない。 72.14.235.104/search?q=cache:wa7dfBVHLrwJ:cms.c-okinawa.co.jp/cinfo/39-campanyinfo/69-campanyinfo.html%3Ftmpl%3Dcomponent%26print%3D1%26page%3D+http://cms.c-okinawa.co.jp/&hl=ja&ct=clnk&cd=2&gl=jp
737 名前:nobodyさん mailto:sage [2008/10/08(水) 08:31:02 ID:???] しかも、そのページキャッシュの下にある、これは何だ。 こんなバグばかりの自社ページw 最終更新 ( 2008年July18日(Friday) 13:49 )
738 名前:nobodyさん mailto:sage [2008/10/08(水) 08:34:44 ID:???] まぁ沖縄だからな 都内と比べて技術者が劣るのは否めない
739 名前:nobodyさん mailto:sage [2008/10/08(水) 08:36:00 ID:???] 裏を返せば、東京でプログラマーやっていれば、 沖縄でプロマネとか出来るってことか?
740 名前:nobodyさん mailto:sage [2008/10/08(水) 08:45:47 ID:???] CMSの管理アカウントが洩れたんだろうね。 技術力というよりは、管理力の問題かな。
741 名前:nobodyさん [2008/10/08(水) 08:49:07 ID:pfYxFPga] すみません、質問です 今phpでプログラムを書いているんですが、実行中にタイムアウトしてしまいます デフォルトの制限30秒を伸ばすのではなく、根本的に解決したいと思うのですが 可能性としてどんなことが考えられるでしょう? フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします ソースを見せられないのに漠然としていて申し訳ないのですが、ありがちな失敗例でも 教えてもらえたら幸いです 環境はwinXP Pen3-900mhz メモリ512m apache2 php5です マシンのスペックがショボイのも一因かなと思いますが問題ないでしょうか?
742 名前:nobodyさん mailto:sage [2008/10/08(水) 08:55:09 ID:???] >>741 ソース出した方が、解決早いよ。
743 名前:nobodyさん mailto:sage [2008/10/08(水) 09:10:24 ID:???] >フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします こんなんでタイムアウトするとかありえないし無限ループしてるだけじゃね? whileとかforの部分があったら出してみ
744 名前:nobodyさん [2008/10/08(水) 09:37:13 ID:pfYxFPga] >>742-743 お返事ありがとうございます whileやfor文はないんです いま、error.logを見たら、以下のようになっていました PHP Fatal error: Maximum execution time of 30 seconds exceeded in C:\\....\arrayList.php on line 2, referer: localhost/system/admin/player_mng/base.php それで、arrayList.phpをみると <?php $sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4)); となっています($sTypeAryの前にタブが入ってます) ログが問題あるといってるのは$sTypeAryの箇所ですよね? おかしいでしょうか? このarrayList.phpはたくさんの配列が定義されていて、それを使ってプルダウンメニューを生成してるんですが、、
745 名前:211 [2008/10/08(水) 10:12:23 ID:ARUsAyOt] 気になる部分を切り出して動かしてみるとか、 途中でログを出力するようにしてどこで止まるか調べるとか、 デバッガーを使ってみるとか、 動いていた環境と何が違うのか考えてみるとか、 文字コードが関係してないかとか、 考えればいろいろ思いつくんじゃない?
746 名前:741 [2008/10/08(水) 10:32:58 ID:pfYxFPga] >>745 ありがとうございます >気になる部分を切り出して動かしてみるとか、 >途中でログを出力するようにしてどこで止まるか調べるとか、 >デバッガーを使ってみるとか、 気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてますが ログ出力とかデバッガとかはわかりません どんな風にしたらいいんでしょうか? ログ出力ってのはapacheのerror.logとは違うものですか? デバッガって専用ソフトがあるんでしょうか。。 調べてみますが、もし気が向いたら教えてください
747 名前:211 [2008/10/08(水) 10:45:45 ID:ARUsAyOt] >気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてます これで問題のあるところが絞り込めるんじゃないの? んでそこをじっと見てみれば解決に近づくと思うけど。 知らないことは調べてみて、わからないことをまた聞けばいいじゃない。
748 名前:nobodyさん mailto:sage [2008/10/08(水) 12:36:58 ID:???] Pear::Benchmarking_Benchmarkでも使ってみたら
749 名前:nobodyさん mailto:sage [2008/10/08(水) 12:42:57 ID:???] 配列をループさせて作るプルダウンは生成できてるの? 一度、プルダウン生成のループ前でexit;してみなよ。 それでタイムアウトしなければ配列の要素が多すぎるか無限ループ起こしてるか。
750 名前:nobodyさん mailto:sage [2008/10/08(水) 12:50:49 ID:???] whileやfor文はないけどforeach文はあるんですとかいうオチか? 配列つかっててループ使わないとは到底思えないわけだが
751 名前:nobodyさん mailto:sage [2008/10/08(水) 13:03:33 ID:???] エスパー呼んで来い!
752 名前:nobodyさん mailto:sage [2008/10/08(水) 14:52:41 ID:???] ふつうに再帰呼び出しのバグのような...
753 名前:nobodyさん mailto:sage [2008/10/08(水) 14:55:49 ID:???] >>744 >arrayList.phpはたくさんの配列が定義されていて その配列の数だけプルダウンメニューを生成していると・・・ ま、問題箇所はそこだね。 プルダウンメニューの生成部分をここに書いてご覧。
754 名前:nobodyさん mailto:sage [2008/10/08(水) 16:06:32 ID:???] 文字コードの変換についての質問です 対象となる文字を書き込むと文字化けするようですので以下のURLの検索結果を見ていただけますでしょうか ttp://www.google.co.jp/search?num=100&hl=ja&q=%E9%AA%9A%E8%B4%A7%E5%9B%BE&btnG=%E6%A4%9C%E7%B4%A2&lr= これらの漢字をUTF8からSJISに変換しようとすると?に化けます。 ※SJIS-winも同じ 用途はウェブから拾ってきた文字列(UTF8)をWindowsのフォルダ名として使用したいのですが、 特殊な文字が含まれている場合に文字化けを起こし、場合によってはフォルダの作成に失敗します。 ちなみにPythonだと、str.decode('utf8') でデコードすると特殊な文字のままフォルダ名として使用できました。 これと同じ事をPHPで実現可能でしょうか? よろしくお願いいたします。 OS:WindowsXP phpは5.2.5を使用
755 名前:754 [2008/10/08(水) 16:08:37 ID:l2gN2Unr] すみません。age忘れました・・
756 名前:nobodyさん mailto:sage [2008/10/08(水) 16:22:07 ID:???] 中国語じゃないの?
757 名前:nobodyさん mailto:sage [2008/10/08(水) 20:36:06 ID:???] Imagickを使用して複数のGIF画像からアニメーションGIFを作成したいと思います。 以下のようなコードを実行したところ、作成はされたのですがアニメーションが繰り返しません。 $im = new Imagick("1.gif"); $im2 = new Imagick("2.gif"); $im->addImage($im2); $im->writeImages('3.gif', true); $im->destroy(); $im2->destroy(); どのようにしたら繰り返すアニメーションGIFを作成できますか? PHP 5.2.3 Fedora Core release 6 よろしくお願いします。
758 名前:757 [2008/10/08(水) 20:37:40 ID:AijBw8uq] すいません。ID出してませんでした。
759 名前:nobodyさん mailto:sage [2008/10/08(水) 20:37:47 ID:???] >>757 >>1
760 名前:nobodyさん mailto:sage [2008/10/08(水) 20:40:30 ID:???] >>758 www.google.com/search?q=Imagick+%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
761 名前:nobodyさん [2008/10/08(水) 20:54:08 ID:ZJxG3jMs] 【OS名】CentOS 5.2 【PHPのバージョン】php 5.1.6-20.el5_2.1 【連携ソフトウェア】mysql 【質問内容】 これまで正常に動作していたサイトの出力の先頭にゴミが出るようになった。 下記のようなゴミ。これを消したい。 出るようになったタイミングは CentOS で yum update やってサーバ再起動してから。 PHP上で動いているプログラムの問題かと思ったら、phpMyAdmin でも同様の 状態だった。ゴミの文字列は毎回違う。 ------------------------------------------------ 10be4 (←これがゴミ) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ... ------------------------------------------------ 猛烈に以前も同じことがあった気がする。 おながいします。
762 名前:nobodyさん mailto:sage [2008/10/08(水) 21:08:44 ID:???] BOM
763 名前:たまちゃん ◆ExGQrDul2E [2008/10/08(水) 21:20:35 ID:EssfW95q] PHP 正規表現 で質問があります。 画像ファイルとかの test.jpg 1234.test.jpg テスト.jpg のように、一番最後の.の後にある拡張子を取得したいんですけどどうしたらよいですか? $test = 'test.test2.gif'; if(preg_match("/(.+?).\d/",$test){ $filename = $test[1]; } では全然ダメでした。
764 名前:nobodyさん mailto:sage [2008/10/08(水) 21:33:51 ID:???] /[^\.]+$/ ていうか何がどうなってその正規表現に行き着いたんだ
765 名前:nobodyさん [2008/10/08(水) 21:35:26 ID:ij2fkFmB] 今帰りました。 お礼が遅れましたすいません。 >729 ありがとうございます。 該当すると思われるページにたどり着き納得しました。 >730 入力の制限も勉強してみます。 ありがとうございます。
766 名前:nobodyさん [2008/10/08(水) 22:55:04 ID:QSI2sKBR] XSS対策で、htmlspecialchars関数を使ってますが、&をエスケープするので、 &#9829等の特殊文字が表示されなくなりました。 みなさんはこの部分はどう対策されてますか?
767 名前:741 [2008/10/08(水) 23:43:38 ID:pfYxFPga] >>749-753 親切なレス本当にありがとうございます 外出しててお返事遅れてしまいました 配列をプルダウンにする処理は以下の通りです function makeStypePd($name,$selectNum,$modifyMode){//$modifyMode top>通常 rewrite>修正 db>db取得 $name=strtoupper($name); $options=""; //修正画面用 if($modifyMode == "rewrite"){ for($i=1;$i<=count($this->sTypeAry)-1;$i++){ $options .="<option value=\"".$this->sTypeAry[$i][1]."\" "; if(($selectNum != NULL) && ($selectNum == $this->sTypeAry[$i][1])){ $options .= "selected=\"selected\""; } $options .= ">".$this->sTypeAry[$i][0]."</option>\n"; } return $options; } //DB参照画面用 else if($modifyMode == "db"){ //同様の処理 } //通常画面用 普通にプルダウンを作る else if($modifyMode == "top"){ //同様の処理 } } おかしいでしょうか? 選択値を配列の各要素が持つ値と照合して、同じだったらselectedとする、 そうでなければ普通にoptionを作っていくという処理のつもりです。配列は以下のものを使っています。 $sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));
768 名前:nobodyさん mailto:sage [2008/10/09(木) 00:17:59 ID:???] つっこみどころ満載で涙が出るな ループでは「$this->sTypeAry」、定義では「$sTypeAry」、 ちゃんと「$this->sTypeAry」に代入されてるか? forで「$i=1」ってなってるけど、それだと「こだわらない」が使われないよな? (配列ならforeachの方がいいと思うんだがなぁ) 単純なループだから大概な数を回しても30秒以内に終わりそう・・・・ ここには原因がないのだろうか
769 名前:nobodyさん [2008/10/09(木) 00:44:35 ID:ju+5ve0t] >>768 どうもです 本当にすみません 配列の代入はされてます 「こだわらない」はこの場合適用されなくていいんです(一言添えるべきでした すみません) forよりforeachの方がいいんですか? そのほうが早いとか? foreachをよく理解できないので使わなきゃ良いやって気分だったんですが、、 どこがまずいのかなぁ、、 あと、ちょっと話題がずれるかもしれないですが ある画像ファイルがあるときは、それを出力する処理をしています $dbPicPath = "../../../".$_SESSION['uType']."/img/".$_SESSION['uId']."/".$corner."/".$name.".jpg"; if(getimagesize($dbPicPath)){ $rtn.="<img src=\"".$dbPicPath."?".$rand."\"".$resize." />\n"; }else{ $rtn.="−\n"; } return $rtn; この処理に対して、該当する画像が存在しない場合エラーログに PHP Warning: getimagesize(../../../artists/img/1/pic/***.jpg) failed to open stream: No such file or directory といわれます この警告Warningを出さないようにするにはどうしたらいいでしょうか? これが遅い原因かな? 上記処理の時点では、該当ファイルの有無はわからないので 「そんなファイルやディレクトリはないよ」と いわれてもしょうがないじゃんって気分です。。 すみませんが気が向いたら教えてください
770 名前:nobodyさん mailto:sage [2008/10/09(木) 00:53:31 ID:???] ソースはともかくプルダウンはできてるぞ getimagesize()の前にファイルの有無をチェック
771 名前:nobodyさん [2008/10/09(木) 01:05:05 ID:ju+5ve0t] >>770 たびたびすみません getimagesizeをfile_existsに置き換えたらwarning出なくなりました もう少し粘ってみます 今日はありがとうございました
772 名前:nobodyさん [2008/10/09(木) 01:08:35 ID:e6lF3vrt] データベースに接続するために、ユーザーIDやPWDをphp側で設定する必要があると思うのですが、 そのような設定値は、どこに書くのが適切でしょうか? ファイルに外だしすると、データベースに接続するたびに、 ファイルI/Oが発生して処理が遅くなるかと思いますが、 ソースに直接書くと、異なるサーバー(例えばテスト環境と本番環境)毎にソースを変えなければいかず、 それも、欠点が多いような気がします。 みなさんは、どこに書かれていますか? よろしくお願いします。
773 名前:nobodyさん mailto:sage [2008/10/09(木) 01:20:53 ID:???] >>766 preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($value) とか。 ウザイけど。
774 名前:nobodyさん [2008/10/09(木) 02:03:19 ID:HkhPxnZW] >>772 config.php作って定数にしてinclude
775 名前:nobodyさん mailto:sage [2008/10/09(木) 02:04:43 ID:???] >>772 config.ini作ってfile_iniみたいた感じのやつで読み込んでる
776 名前:nobodyさん mailto:sage [2008/10/09(木) 07:18:15 ID:???] >>766 考え方がおかしい htmlspecialchars() は文字列をHTMLのCDATAに変換するためのもの もともと実体参照が含まれているCDATAな文字列に対して htmlspecialchars() を噛ませばおかしな事になるさ 実体参照をエンコーディングに従って割り当てられた文字コードに直せ
777 名前:773 [2008/10/09(木) 09:54:59 ID:T+Rb7EjR] >>773 私の場合単純に $var = htmlspecialchars($var,ENT_QUOTES); $var = ereg_replace('&#([19])','?\\1',$var); とやろうと思ったのですが、セキュリティーホールができそうでちょっと怖いです >>776 よくわからないのですが、実体参照(文字参照)に文字コードが関係するんですか? ユーザーの中に、?&#9829;とか?&#9834;とか書き込んでくる人がいるので、そういう人のために きちんと記号表示されるようにしてあげたいのですが、、 ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8F%82%E7%85%A7
778 名前:773 [2008/10/09(木) 10:14:06 ID:T+Rb7EjR] >>777 追記 2chに変換されてしまった、、(^-^; 2chでは特殊文字が普通に変換されるサーバと?になるサーバとがあるみたいですね &#[0-9]* って感じか 4行目 $var = ereg_replace('&amp;#([19])','&#\\1',$var);
779 名前:nobodyさん mailto:sage [2008/10/09(木) 12:37:12 ID:???] >>763 それ正規表現いらない
780 名前:773 [2008/10/09(木) 13:07:33 ID:T+Rb7EjR] その後いろいろ調べたのですが、どうやら&はエスケープしなくてもセキュリティー上は問題ないようです。 shimax.cocolog-nifty.com/search/2007/12/php_f864.html とりえずこんな感じにしてみました $var = htmlspecialchars($var,ENT_QUOTES); $var = ereg_replace('&amp;#(9[0-9]{3}|1[0-9]{4})','&#\\1',$var);//一桁目が1(5ケタ)と9(4ケタ)のみ許可する
781 名前:nobodyさん [2008/10/09(木) 13:52:37 ID:XhRaoWbe] 【OS名】レンタルサーバで不明 【PHPのバージョン】php4.4.2 【連携ソフトウェア】mysql 【質問内容】 WebAPIよりXMLを取得しているのですが、階層が一定でなく 再帰処理によりデータを処理したいと考えています。 その際、staticによりデータを保持して再帰処理しているのですが staticで指定したデータを初期化する方法はないでしょうか? メインのファンクションから再帰処理を呼び出しているのですが すべてのデータが残ってしまい困っています。
782 名前:nobodyさん mailto:sage [2008/10/09(木) 14:16:55 ID:???] 歯茎 www.vipper.org/vip949167.jpg
783 名前:nobodyさん mailto:sage [2008/10/09(木) 14:24:39 ID:???] >>781 staticよりリファレンスの方が良くね? function sample ($node, &$out) { 〜 } $outに返り値を格納するようなヤツ
784 名前:nobodyさん mailto:sage [2008/10/09(木) 14:35:29 ID:???] >>783 望み通りの動作になりました。ありがとうございます!!
785 名前:nobodyさん [2008/10/09(木) 17:58:27 ID:waFB31sw] "aaa","bbb" と言うように区切られた文字列を $array[] = "aaa"; $array[] = "bbb"; と言うように配列に入れるにはどうしたらいいのでしょうか? ファイルではないのでfgetcsvも使えません。
786 名前:nobodyさん mailto:sage [2008/10/09(木) 17:59:43 ID:???] >>785 split
787 名前:nobodyさん [2008/10/09(木) 18:04:59 ID:DVR9Hu5G] すみません、質問させて下さい。 PHP4のサーバーでエラー内容がブラウザに表示されず白紙のままです。 display_errorsとhtml_errorsはphpinfoで確認したところOnでしたが、念のためini_setとhtaccess両方試したけどダメでした。 よかったらご教授ください。よろしくお願いします
788 名前:nobodyさん mailto:sage [2008/10/09(木) 18:07:46 ID:???] >>787 error_reportingは?
789 名前:nobodyさん [2008/10/09(木) 18:19:02 ID:DVR9Hu5G] >>788 これが0でした!ありがとうございました。
790 名前:nobodyさん [2008/10/09(木) 20:04:59 ID:HNHF0bWh] 質問なんですが、配列の名前をループ内で自由につけるのはどうすればいいですか? 一つの配列$arrを分けたいので、$arr1、$arr2、…、のように分けるつもりで $arrX[] = $arr[$i] のようにしたいのです。 (※ X の所にループ内で得られる数字を入れたい) どうすればいいですか?
791 名前:nobodyさん mailto:sage [2008/10/09(木) 20:26:55 ID:???] $key = "arr$i"; $$key = $arr[$i];
792 名前:790 [2008/10/09(木) 20:49:00 ID:HNHF0bWh] >>791 $$keyの様にやってみたのですが、 ループ2周目で$$keyが上書きされてしまうで、$$keyが配列になりません。 ($arrXに複数入れたいのです) そこで $$key[] = arr[$i]; にしたのですがエラーになってしまうのです。 他に方法はないでしょうか?
793 名前:nobodyさん mailto:sage [2008/10/09(木) 20:51:36 ID:???] 教えてもらったやり方から色々工夫してみれ
794 名前:nobodyさん mailto:sage [2008/10/09(木) 21:31:39 ID:???] LPO対策クラス作って設置し実際に効果があった、需要があればさらす。
795 名前:nobodyさん mailto:sage [2008/10/09(木) 21:48:48 ID:???] むしろ効果のほうを晒してくれ
796 名前:nobodyさん mailto:sage [2008/10/09(木) 22:15:58 ID:???] >>739 お前分からんだけやろw
797 名前:nobodyさん mailto:sage [2008/10/09(木) 22:41:31 ID:???] お前は誰と戦ってるんだ
798 名前:nobodyさん [2008/10/09(木) 22:44:13 ID:HNHF0bWh] >>796 お分かりでしたら教えて下さい。 変数はできたのですが変数が配列になりません。
799 名前:nobodyさん [2008/10/09(木) 22:59:01 ID:ZnuIQjgo] イラレ+phpのgdでアバター機能作成をしています。 パーツ画像種類はPNGで、合成後jpgに変換して表示しています。 アンチエイリアスをかけて画像を保存して、下記を実行すると、絵がある部分の背景が黒くなってしまいます。 アンチエイリアスをかけずに画像を保存すると、画像がぎざぎざになってしまいます。 どうにか、うまい按配で合成することはできないでしょうか? /**/$imgpro[0]=array("../img/abt/base/w2.png","0","0"); $imgpro[1]=array("../img/abt/huku/w2.png","0","0"); $imgpro[2]=array("../img/abt/hair/w2.png","0","0"); $imgpro[3]=array("../img/abt/eye/w2.png","0","0"); $imgpro[4]=array("../img/abt/hana/w2.png","0","0"); $imgpro[5]=array("../img/abt/kuti/w2.png","0","0"); $imgpro[6]=array("../img/abt/mayu/w2.png","0","0"); $src = imagecreatefrompng($imgpro[0][0]) or die("error!1\n"); foreach($imgpro as $value){ $mrg1 = imagecreatefrompng($value[0]) or die("error!2\n"); list($mrg1_width, $mrg1_height) = getimagesize($value[0]); // イメージをマージ imagecopymerge($src, $mrg1,$value[1],$value[2],0, 0,$mrg1_width,$mrg1_height,100) or die("error!3\n"); }
800 名前:nobodyさん mailto:sage [2008/10/09(木) 23:14:45 ID:???] 白背景の画像用意してマージすりゃいいのと違うのか
801 名前:nobodyさん mailto:sage [2008/10/10(金) 01:04:15 ID:???] >>798 $$key = array($arr[$i]) でできますよ。
802 名前:nobodyさん [2008/10/10(金) 02:23:46 ID:6LvKpYRu] phpの質問と言うよりはプログラミングの基本な質問で悪い。 いま仮に100個あるデータの中からランダムで重複せずに(←重要) 10個のデータを取り出したい場合なんだが スマートな書き方ってどうするんだろ? $arr = array(100個のデータ); $random = mt_rand(0, $arr-1); $random を以前取り出したデータと重複していないかチェックして 新たな配列に入れるみたいな作業になると思う。
803 名前:nobodyさん mailto:sage [2008/10/10(金) 02:33:05 ID:???] 上からこられるといらっとするよね
804 名前:754 [2008/10/10(金) 02:55:06 ID:uSuuZHDd] >>802 配列をシャッフルしてarray_popで取り出す
805 名前:802 [2008/10/10(金) 03:03:14 ID:6LvKpYRu] >>804 あー、頭いいな〜。 if文も使わないし非常にスマートですね。 で調べていたらarray_randというまさにそのためにあるような 関数で解決しました。 マニュアルには明記されていませんが、 どうやら重複せずに配列からランダムで取り出すみたいです。 PHPは関数が豊富ですな。
806 名前:nobodyさん mailto:sage [2008/10/10(金) 05:13:24 ID:???] そんなんどこに書いてあったんだよ マジレスすると種次第。 >>804 は切り出さなくても先頭10だけ使うって方法でも良いね
807 名前:nobodyさん mailto:sage [2008/10/10(金) 09:17:06 ID:???] ttp://www.php.net/manual/ja/function.array-rand.php 種は自動で生成する
808 名前:nobodyさん [2008/10/10(金) 09:56:30 ID:Mjn4nOqX] 2chぽい掲示板を作っています。データの保存形式も同じです。 最新30レスだけ読み込みたい場合、今のところ全部読み込んで抜き取っているのですが 全部読み込まずにファイルの後方から読み込むような方法はないでしょうか 負荷に困ってるわけではないのですが、負荷を軽くする方法を知っておきたくて。よろしくおねがおします。
809 名前:nobodyさん mailto:sage [2008/10/10(金) 09:58:37 ID:???] >>808 tail -fでやるのは如何でしょうか?
810 名前:nobodyさん mailto:sage [2008/10/10(金) 11:09:14 ID:???] fopenして fseek(ファイルのケツ)して1行づつ戻して読めば? アッー!
811 名前:nobodyさん mailto:sage [2008/10/10(金) 12:13:05 ID:???] ケツにseekしても行単位で戻せんし、どうしてもバイト単位になるす 行単位でseek出来れば最初からヤっとるわ! アッー!
812 名前:nobodyさん mailto:sage [2008/10/10(金) 16:28:36 ID:???] わがまま言わずに行区切りくらい自分で見付けなさい 行単位でシークしたけりゃおとなしく固定長レコードか、データベース使えば? 負荷が問題になるならキャッシュの導入を先に考えればいいよ。
813 名前:nobodyさん [2008/10/10(金) 18:31:41 ID:Yvgf2UGi] php4とphp5をくらべて、php4でしか使えない関数ってありますか?
814 名前:nobodyさん mailto:sage [2008/10/10(金) 18:34:30 ID:???] >>813 たとえば、mb_系の関数やwhile文やexit、functionなどが使えない。
815 名前:nobodyさん [2008/10/10(金) 18:45:41 ID:Yvgf2UGi] ありがとうございます 以下のサイトを参考にしたのですが、このページに掲載されている関数は全部php5で使えるということでしょうか? ttp://php.benscom.com/manual/ja/indexes.php
816 名前:nobodyさん mailto:sage [2008/10/10(金) 18:57:59 ID:???] >>815 釣られんな、>>814 に書いてるヤツが使えなかったらヤバいだろ ttp://www.php.net/manual/ja/indexes.php 同じ内容だが本家見ような、余裕あれば原語も ttp://www.php.net/manual/ja/about.prototypes.php マニュアルを見る前にここチェック 関数の説明にはちゃんと対応バージョン書いてあるからな
817 名前:nobodyさん [2008/10/10(金) 19:23:21 ID:Yvgf2UGi] ありがとうございます これからは本家で見るようにします。 php4を切り捨てるため、php5で使える関数をテキストエディタの補完色分けに作ろうと思ってます。 関数の説明ページをひとつずつ開いて対応バージョンを調べるしかないですよね・・・ 時間との戦いになりますが、地道にやっていきます。
818 名前:nobodyさん mailto:sage [2008/10/10(金) 20:02:39 ID:???] いくつあると思ってるんだw
819 名前:nobodyさん [2008/10/10(金) 20:19:02 ID:Mjn4nOqX] >>809-812 試してみます。 ありがとうございました。
820 名前:nobodyさん [2008/10/11(土) 02:23:25 ID:Dg304RS1] いいってことよ 無料人力検索ボランティアをこき使ってくれたまえ
821 名前:nobodyさん [2008/10/11(土) 02:25:45 ID:Dg304RS1] 1.質問があがる ↓ 2.質問を読んだ者が検索して答えをみつけてくる ↓ 3.検索してみつけたページに書いてあることをコピペ(文章改ざん)して偉そうに回答 そんなスレだからがんばれよ
822 名前:nobodyさん mailto:sage [2008/10/11(土) 02:26:39 ID:???] そんな今さらなこと言われてもなぁ
823 名前:nobodyさん mailto:sage [2008/10/11(土) 02:47:43 ID:???] これいいなと思う質問回答はwikiにまとめようぜ ttp://wikiwiki.jp/
824 名前:nobodyさん mailto:sage [2008/10/11(土) 04:35:19 ID:???] 一人でやってろ
825 名前:nobodyさん mailto:sage [2008/10/11(土) 07:43:55 ID:???] >>830 がwikiwiki登録してくれます
826 名前:nobodyさん [2008/10/11(土) 16:02:58 ID:hw8joz8b] すみません。このようなエラーが出ていますが、何が原因ですか? Service Temporarily Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. -------------------------------------------------------------------------------- Apache/1.3.34 Server at www.mannanlife.co.jp Port 80
827 名前:nobodyさん mailto:sage [2008/10/11(土) 16:03:54 ID:???] www.mannanlife.co.jp/
828 名前:nobodyさん mailto:sage [2008/10/11(土) 16:33:13 ID:???] >>826 いつから、こうなるの? あなたは誰?単なる訪問者、それともHP設置者とか。
829 名前:nobodyさん mailto:sage [2008/10/11(土) 21:20:05 ID:???] フッターを外部ファイルで一括管理したいのですが、 ググってみてもあまり情報が出てきません。 phpのインクルードの方法について教えてください。
830 名前:nobodyさん mailto:sage [2008/10/11(土) 21:21:11 ID:???] include 'footer.html';
831 名前:nobodyさん [2008/10/11(土) 22:21:44 ID:4K6Y3Waq] バッチファイルにftpコマンド書いておいて サイト閲覧者に開かせれば そいつのパソコンのデータを自動で俺のサーバーに移せますか?
832 名前:nobodyさん mailto:sage [2008/10/11(土) 22:23:32 ID:???] 無理
833 名前:nobodyさん [2008/10/11(土) 22:53:19 ID:8WtsmSV0] PEARのMDB2を使用してTCP/IPを使用しているMySQL5の環境で 接続しようと試みているのですが、接続できません。 ご教授願えますか?
834 名前:nobodyさん mailto:sage [2008/10/11(土) 23:07:58 ID:???] >>833 localhostじゃないならポートが開いてるか確認する必要がある MySQL接続ユーザのhostに接続元のホスト名(または%)が指定されてるか確認する必要がある あと、「接続出来ません」では分からん MDB2ならデバッグでエラーメッセージを取れるから、何が原因で接続出来ないか見ような
835 名前:nobodyさん [2008/10/11(土) 23:20:16 ID:G3J1VtlX] PHPエディタなんだけど、 ファイルを2つ開いておいて、 タブで切り替えるってできないの?
836 名前:nobodyさん [2008/10/11(土) 23:29:26 ID:8WtsmSV0] エラーメッセージを取得しましたら下記のようなエラーです。 Access denied for user: 'username@hostname' (Using password: YES)] ポートの開閉確認とは??レンタルサーバーを使用しております。どのように 行えばよいでしょうか?お恥ずかしい質問ですが、よろしくおねがいします。
837 名前:nobodyさん [2008/10/11(土) 23:29:53 ID:4K6Y3Waq] >>832 回答ありがとうございます。 余談ですが delコマンドを使うと閲覧者のPCのデータを消せますか? >>835 メモ帳二つ開けばいいよ。漢(おとこ)ならメモ帳だろ。 関係ないけど、さっきすっきりデフラグってソフト使ったら、 PHPのセッションのフォルダごと自動で削除されてセッション使えなくなった。
838 名前:nobodyさん mailto:sage [2008/10/11(土) 23:31:23 ID:???] >>836 IDかパスが間違ってる
839 名前:nobodyさん [2008/10/11(土) 23:37:11 ID:8WtsmSV0] ソースに記述したIDとパスでphpMyAdminはログインできるんです・・・。
840 名前:nobodyさん mailto:sage [2008/10/11(土) 23:37:45 ID:???] じゃ接続の仕方がおかしい
841 名前:nobodyさん [2008/10/11(土) 23:41:28 ID:8WtsmSV0] $mdb2 =& MDB2::connect("mysql://username:pass@hostname/tablename"); と記述しております。どこか間違えておりますでしょうか?
842 名前:nobodyさん [2008/10/11(土) 23:57:24 ID:8WtsmSV0] 記述ミスです。 $mdb2 =& MDB2::connect("mysql://username:pass@hostname/databasename"); です。
843 名前:nobodyさん mailto:sage [2008/10/12(日) 00:10:26 ID:???] そのレン鯖のMySQLは外部接続を許可しているのか? そうでないならlocalhostしか接続出来んだろ phpMyAdminはレン鯖提供か、自スペースに置いたものだろ?(レン鯖ないで動くアプリはlocalhost接続)
844 名前:843 mailto:sage [2008/10/12(日) 00:14:23 ID:???] ちょっと言い方が悪かったかもしれん つまりホスト名に「localhost」以外を指定出来る設定になってるかどうか 普通は「mysql://username:pass@localhost/databasename」にする (MySQLはユーザ名だけでなくホスト名もチェックする認証方式)
845 名前:nobodyさん [2008/10/12(日) 00:16:43 ID:cg/RVdaY] セッションを利用するWEBページを見て回ってるときに、 そのセッションIDが自分のパソコンの中のクッキーに保存されていて、 そのクッキーを盗み出されたら、セッションIDがばれてしまって なりすましされてしまうの?
846 名前:nobodyさん mailto:sage [2008/10/12(日) 00:40:17 ID:???] サイトの対策次第 セッションIDと共にIPでのチェックもしてる場合は抑制されるし サイトが未対策で、IDバレたらなりすまし可能(ヘッダーにIDを仕込むだけだし)
847 名前:nobodyさん mailto:sage [2008/10/12(日) 00:43:36 ID:???] >>845 セッションハイジャックは都市伝説。 存在しないよ。
848 名前:nobodyさん mailto:sage [2008/10/12(日) 00:57:13 ID:???] >>846 セッションIDが分かっても、鯖はコネクションが切れた時点でセッション内容を破棄するから 盗んだセッションでアクセスしても既に内容が無いんと違うか? >>847 同意。セッションのフォルダは隠しフォルダだから外からアクセスできないし、外部から見るのは不可能だよな。
849 名前:nobodyさん [2008/10/12(日) 01:44:14 ID:kzFvqNLy] おう、わいや、清原や。 お前ら、他のやつが作ったフリーのライブラリとか使う時に 自分のサイトで「○○さんのを使わせてもろたで」とか書くんか? 書かんでええやろ。どないやねん。はよ答えろや。
850 名前:nobodyさん mailto:sage [2008/10/12(日) 02:30:18 ID:???] >>848 …こんな奴がいるからいつまでたってもPHPが馬鹿にされる
851 名前:nobodyさん [2008/10/12(日) 04:54:47 ID:kzFvqNLy] おう、わいや、清原や。 PDF作ろうと思うとるねんけどFPDFは文字化けしてよう作られへんわ。 PHPのマニュアルに個人利用フリーで商用有料のモジュールあるんやけど 個人でアフィリエイトするサイトは商用になるんか? そもそも商用って何やねん。 ウェブプログラマーになって他人のサイト作る事が商用? 会社で自社のサイト作るんが商用? どないやねん。はよ教えろや。 というか外部の奴からは関数なんて分からんから商用やってもバレへんのちゃうか?
852 名前:nobodyさん [2008/10/12(日) 04:59:49 ID:LpzkFgnx] ____ /__.))ノヽ .|ミ.l _ ._ i.) (^'ミ/.´・ .〈・ リ そんなこと知らんわ .しi r、_) | | `ニニ' / ノ `ー―i
853 名前:nobodyさん mailto:sage [2008/10/12(日) 05:14:04 ID:???] >>851 ちんちん舐めて
854 名前:nobodyさん mailto:sage [2008/10/12(日) 06:31:27 ID:???] >>852 星野に似てるな。
855 名前:nobodyさん [2008/10/12(日) 09:01:37 ID:B7DkksYv] すいませんopenlab.ring.gr.jp/k16/htmllint/tagslist.cgi?HTMLVersion=XHTML11 で タグ名とそのタグの属性名を正規表現で抜き出したいのですがうまくいきません どなたかご教授おねがいします $file = file_get_contents("openlab.ring.gr.jp/k16/htmllint/tagslist.cgi?HTMLVersion=XHTML11 "); preg_match_all("/<dl>.*</dl>/",$file, $ary);
856 名前:845 mailto:age [2008/10/12(日) 09:50:14 ID:???] うぜえ回答者はだまってろ! わかるかた回答おね
857 名前:nobodyさん mailto:sage [2008/10/12(日) 10:20:47 ID:???] >>855 正規表現で/使う場合はエスケープ オプションで改行も全て含むやりかたがあるからやってみろ(mだかUだか忘れたけど) .*を(.*?)にしてみろ、.*は最長マッチだが.*?は最短マッチだ
858 名前:nobodyさん mailto:sage [2008/10/12(日) 10:30:37 ID:???] >>845 なりすましはセッションではなくSSLで使う言葉じゃね。 Session Fixationでググれ。
859 名前:nobodyさん mailto:sage [2008/10/12(日) 12:57:38 ID:???] >>856 俺のチンコなめ回したら教えてやる。
860 名前:nobodyさん mailto:sage [2008/10/12(日) 13:30:21 ID:???] >855 もうDOM使っちまえよ
861 名前:nobodyさん [2008/10/12(日) 13:53:51 ID:UTQYH/CT] php.ini の以下の設定のコメントを外してもociドライバが認識されません(phpinfo()で確認) extension=php_oracle.dll extension=php_oci8.dll extension=php_pdo_oci.dll Oracle Database 10g Express Editionを使用してます。 どうしたら、認識されるのでしょうか?
862 名前:211 [2008/10/12(日) 13:59:14 ID:fXLt5ZTj] >>861 Oracleのクライアントを入れていないんじゃない?
863 名前:211 [2008/10/12(日) 14:06:40 ID:fXLt5ZTj] おっと。うっかり想像で書いてしまったぜ。 >>861 エラーログみたらなんか出てるんじゃない? ロードに失敗しているなら、DLLをロードする時必要なファイルに パスが通ってないとかそもそも必要なものがインストールされてないとか、、、 www.php.net/manual/ja/book.oci8.php
864 名前:nobodyさん [2008/10/12(日) 15:12:01 ID:kzFvqNLy] おう、清原やけど、 数字を16進数や2進数にするんわ分かってんけど 文字を16進数や2進数にするんわどうしたらええの? 文字かて2進数にできるんちゃうか? 教えろや。はよしてや。急いでるねん。
865 名前:nobodyさん mailto:sage [2008/10/12(日) 15:15:31 ID:???] asciiコードってこと? 全角だと文字コードによって変わっちゃうんだけど
866 名前:211 [2008/10/12(日) 15:20:51 ID:fXLt5ZTj] 要するに… 「文字」を「数字」にできればいいんだよね。 この変見ればやりたいこと書いてあるんじゃない? www.php.net/manual/ja/language.types.type-juggling.php
867 名前:nobodyさん mailto:sage [2008/10/12(日) 15:32:26 ID:???] >>864 急いでるなら、俺のチンチンを今すぐ舐めろ!
868 名前:nobodyさん [2008/10/12(日) 16:32:51 ID:ZWInd4bd] 変数展開をその場でなく任意の場所で行う 標準的な関数か方法はないでしょうか? 通常の変数展開は $foo = 'bar'; echo "foo: {$foo}"; // => foo: bar ですが $hoge = 'foo: {$foo}'; // ここでは展開しない $foo = 'bar'; echo func($hoge); // ここで展開する // または echo func($hoge, array('foo' => $foo)); など のような形にしたいです。 sprintf()の%sに名前を指定できる感じのものと言えばいいでしょうか。 よろしくお願いします。
869 名前:nobodyさん mailto:sage [2008/10/12(日) 16:36:35 ID:???] そういうときのためにsprintfがあると思うんだが もしくはeval
870 名前:861 mailto:sage [2008/10/12(日) 16:56:09 ID:???] >>863 Oracle Instant Clientを落としてきて、中身をsystem32フォルダに入れたらうまくいきました。 ありがとうございました。たすかりました。
871 名前:nobodyさん mailto:sage [2008/10/12(日) 17:14:38 ID:???] >>869 ありがとうございます。 sprintfは展開する順序が固定なのが少し困るところです。 evalは思いつかなかったので 初心者なりにevalを使って期待する関数をつくってみました。 こういった感じの標準的な関数・方法はないでしょうか? function interpolate($str, $args) { extract($args); return eval('return "' . $str . '";'); } $hoge = 'foo: {$foo}'; $foo = 'bar'; echo interpolate($hoge, array('foo' => $foo)); // foo: bar
872 名前:868 [2008/10/12(日) 17:16:11 ID:ZWInd4bd] すみません。>>871 は868です。
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