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を表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
397 名前:nobodyさん [2009/03/18(水) 14:23:57 ID:R7u4YHhc] なぜimagecreatefrombmpは無いんですか? デジカメとかだとBMPで出力するカメラも結構有るし需要あると思うけど。 ビットマップからイメージ作れるユーザー関数ありますか?
398 名前:nobodyさん mailto:sage [2009/03/18(水) 14:25:50 ID:???] >>397 User Contributed Notesの一番上
399 名前:nobodyさん [2009/03/18(水) 14:47:40 ID:meKzf6DJ] クラス内のメソッドはだいたい何行くらいで収めるのが目安でしょうか?
400 名前:nobodyさん mailto:sage [2009/03/18(水) 15:58:45 ID:???] 50行くらい
401 名前:nobodyさん mailto:sage [2009/03/18(水) 16:21:37 ID:???] >>399 そんなのきまってない
402 名前:nobodyさん mailto:sage [2009/03/18(水) 16:42:30 ID:???] hightide.blog2.fc2.com/blog-entry-146.html
403 名前:nobodyさん mailto:sage [2009/03/18(水) 17:10:10 ID:???] >>399 画面半分に納めるのはよいプラクティスだって昔だれかがいってた。 スクロールしないと見れないメソッドはクソの匂いがするとも。
404 名前:nobodyさん mailto:sage [2009/03/18(水) 19:19:39 ID:???] >>392 ザコは黙ってろ
405 名前:nobodyさん mailto:sage [2009/03/18(水) 19:20:32 ID:???] >>399 pearのコーディング規約に1行何文字程度に収めるか決めてるから参考に読んでこれば
406 名前:nobodyさん mailto:sage [2009/03/18(水) 19:48:17 ID:???] 1行あたりの文字数と メソッドを何行に収めるかの話が 関係あるのか?
407 名前:nobodyさん mailto:sage [2009/03/18(水) 20:07:04 ID:???] 掛け軸ぐらいな縦長のモニタだったら余裕だなw
408 名前:nobodyさん mailto:sage [2009/03/18(水) 20:37:37 ID:???] フォントを1ドットにしてもいいぞ
409 名前:nobodyさん mailto:sage [2009/03/18(水) 21:09:42 ID:???] >>406 既に答えが出てるだろ ゆとりかおまえ
410 名前:nobodyさん mailto:sage [2009/03/18(水) 21:14:44 ID:???] お前は何を言ってるんだ
411 名前:nobodyさん mailto:sage [2009/03/18(水) 22:22:03 ID:???] >>410 はゆとりだから気にしなくていいよ
412 名前:nobodyさん [2009/03/18(水) 23:15:59 ID:gf2MXR+O] 本運用のリモートのunix系鯖か、 開発のローカルのwinかで、 デバッグ云々用とかで判別するのは if (DIRECTORY_SEPARATOR == '/') { ... で問題なし?
413 名前:nobodyさん mailto:sage [2009/03/19(木) 00:18:23 ID:???] 開発環境をunixにしたくなったら詰むな。 それと、Win環境で本番環境同様の状態をエミュレートしたくなった場合も身動きが取れなくなる。 function isDevelopEnvironment() とかをどこかグローバルにアクセスできる場所(グローバル関数か、クラスのstatic関数)に置いとけ。 他の場所からはこの関数で判定するようにしておけば、判定方法が変わっても変更が一箇所で済む。 実装と意図の分離は設計の基礎。 呼び出し側でやりたい事(意図)は環境の判別なのだから、関数名はそうなっているべき。 環境を識別するのにDIRECTORY_SEPARATORを使う、ってのは実装の話で、意図じゃない。 (もっと言うなら、開発環境がWinで運用環境がUnixなのも「たまたまそうなってる」だけの、つまり実装依存な話) で、実装の話だが。 俺ならホスト名を開発環境と本番環境で変えておいて、それで識別する。もしくは設定ファイルか何かに書いておく。 WinとUnixを識別できればそれでいい、ってんなら>412で問題ない。 php_uname()関数の例にもディレクトリ・セパレータでOSを判別するコードが載っている。
414 名前:nobodyさん mailto:sage [2009/03/19(木) 00:19:30 ID:???] >>379 それ。 is_numeric()は"."を許したよーな気がする。 気をつけたほうがいいよ〜 D:\tools\php-5.2.8-Win32>php -r "var_dump( is_numeric( '1.5' ) ) ;" bool(true)
415 名前:nobodyさん mailto:sage [2009/03/19(木) 00:31:24 ID:???] ((string)(int) $string === $string) これはどう?int判定
416 名前:nobodyさん mailto:sage [2009/03/19(木) 00:34:08 ID:???] PHP_OS
417 名前:nobodyさん mailto:sage [2009/03/19(木) 00:35:21 ID:???] >>399 行数っていうのとは違うけど コメントを書かなくていいくらいに分かり易い っていうのを目安にするといいっていう考え方もあるね。 コメントで「○○を処理する」とか入れるくらいなら そのまとまりをprivateなメソッドにする感じ。 まぁ好き嫌いもあるけどねー。
418 名前:nobodyさん mailto:sage [2009/03/19(木) 00:46:01 ID:???] >>285 OOPっていう概念よりも そもそもプログラミングにおいてクラス使うと何が便利? って考えたほうが分かりやすいかもしんない。
419 名前:nobodyさん mailto:sage [2009/03/19(木) 00:49:33 ID:???] DIRECTORY_SEPARATORでOS判定なんてどう考えてもスジが悪いだろ 常識で考えて・・
420 名前:nobodyさん mailto:sage [2009/03/19(木) 01:56:19 ID:???] >>414 ctype_digit でいいんじゃないの、バージョン注意だけど
421 名前:nobodyさん [2009/03/19(木) 09:10:09 ID:8+csUcRF] fsockopenのテストをしているのですが、 ローカルのサーバ(localhost)上ではオープンできないのでしょうか? if(!$sock = fsockopen("localhost",80,$errNo,$errStr,10)){ echo "エラーです"; } として開こうとしても、エラーになります。
422 名前:nobodyさん mailto:sage [2009/03/19(木) 09:28:15 ID:???] なんのために$errNoと$errStrを指定してるんだ
423 名前:421 mailto:sage [2009/03/19(木) 09:32:30 ID:???] localhostを127.0.0.1にしたら出来ました・・。
424 名前:nobodyさん mailto:sage [2009/03/19(木) 09:39:19 ID:???] もしかして環境はVistaか? 最近のアップデートで、hostsを書き換えてlocalhostを消すものがあったと話題になってた。 3/10のWindows Defender更新でhostsが書き換えられる!? - スラッシュドット・ジャパン ttp://slashdot.jp/articles/09/03/11/0924257.shtml
425 名前:nobodyさん [2009/03/19(木) 11:06:59 ID:GwakzSEQ] 【PHPのバージョン】php5.2.8 【質問内容】 クラスのメンバ変数についての質問です。 あるメンバ変数が宣言されたかどうかを調べるにはどうしたらよいでしょうか? 代入はされていないのでissetではダメでした。
426 名前:nobodyさん mailto:sage [2009/03/19(木) 11:10:22 ID:???] get_object_vars もしくは get_class_vars
427 名前:425 mailto:sage [2009/03/19(木) 11:16:32 ID:???] >>426 超速でありがとうございます さっそくテストコードにかかってきます。
428 名前:nobodyさん mailto:sage [2009/03/19(木) 11:18:46 ID:???] is_nullのほうがいいよ
429 名前:nobodyさん mailto:sage [2009/03/19(木) 11:37:30 ID:???] issetのほうがいいよ
430 名前:nobodyさん mailto:sage [2009/03/19(木) 12:38:06 ID:???] 普通こっちじゃねぇの。 jp.php.net/manual/ja/function.property-exists.php
431 名前:nobodyさん mailto:sage [2009/03/19(木) 13:18:49 ID:???] h1タグの部分を置換したいです。 もっと、スマートの方法ありますか? (h1の要素は不特定、ない場合もあります。) <?php $file = " <html><body> <h1 id=\"news\" name=\"news\" style=\"size: medium;\">WBC速報</h1> <p>4回裏 2 - 0</p> </body></html> "; preg_match_all('/<h1[^>]*?>(.*?)<\/h1>/is',$file , $match); $tag = $match[0][0]; $title = $match[1][0]; $file = str_replace($tag,"<div>{$title}</div>", $file); echo $file; ?>
432 名前:nobodyさん mailto:sage [2009/03/19(木) 13:21:15 ID:???] 訂正 スマートな方法
433 名前:nobodyさん mailto:sage [2009/03/19(木) 13:32:20 ID:???] >>420 ctype_digitってマイナス値の場合falseになるから使えなくね
434 名前:nobodyさん mailto:sage [2009/03/19(木) 14:15:42 ID:???] >>431 何に置換したいのか書いてないよ あと>>1
435 名前:nobodyさん mailto:sage [2009/03/19(木) 21:43:36 ID:???] まだやってんのか。 strval(intval($str)) === $str でいいだろ、面倒くせえ。
436 名前:nobodyさん mailto:sage [2009/03/19(木) 22:14:40 ID:???] >>435 これはひどい
437 名前:nobodyさん mailto:sage [2009/03/19(木) 23:11:37 ID:???] >>420 その関数はバグがあるから使い物にならない
438 名前:nobodyさん mailto:sage [2009/03/20(金) 04:10:54 ID:???] phpspot.org/blog/archives/2009/03/phpblog.html
439 名前:nobodyさん mailto:sage [2009/03/20(金) 04:22:45 ID:???] >>438 この人前も誰かにつつかれてキレてたよなw
440 名前:nobodyさん mailto:sage [2009/03/20(金) 08:33:43 ID:???] 三行でまとめてくれ
441 名前:nobodyさん mailto:sage [2009/03/20(金) 08:38:37 ID:???] お前と同じで内容もロクに読まずに転載してるだけですよ、と言ってあげたい
442 名前:nobodyさん mailto:sage [2009/03/20(金) 08:40:35 ID:???] phpspotのアフィ厨がきもいのは確かだが、 「悪名高きda.me..@docomo.ne.jpを引っ掛ける一方で、dankogai+regexp@gmail.comを弾いてしまう」 ってのはどうなん? ドキュモでda.me..@docomo.ne.jpが取得できる以上、 それをウェブアプリ側ではじくわけにはいかないじゃん RFCを守るべきはdocomoであって、ウェブアプリは現実に準拠するしかない
443 名前:nobodyさん mailto:sage [2009/03/20(金) 08:45:13 ID:???] phpspotの人は正規表現について語らないほうがいいのでは labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html このトラウマを刺激されたから過剰反応したんだなw
444 名前:nobodyさん mailto:sage [2009/03/20(金) 08:47:16 ID:???] Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、 せめて自分で確かめてから紹介しようよw >>phpspot
445 名前:nobodyさん mailto:sage [2009/03/20(金) 08:57:25 ID:???] >442 dankogai+regexp@gmail.com はRFCに準拠している。 ドキュモを弾くかはか方針次第だが、このアドレスを弾いてはいけない。 元々phpspotの提示していたコードが役に立たないのは確か。 出力例が「正しいかもしれない」「間違ってるかもしれない」な事からも明らか。 こういうのは「絶対正しい」「間違ってるかも」、もしくは「正しいかも」「絶対間違ってる」のいずれかを返さなければ糞の役にも立たん。
446 名前:nobodyさん mailto:sage [2009/03/20(金) 09:47:11 ID:???] 準拠してようがおれはそんなメアドは通さねーぞwwwwwwwwwwwwwwwww
447 名前:nobodyさん mailto:sage [2009/03/20(金) 09:59:17 ID:???] ttp://d.hatena.ne.jp/elf/20060809/1155100104
448 名前:nobodyさん mailto:sage [2009/03/20(金) 10:02:52 ID:???] プロバイダのメールアドレスをなるべき通したい場合は別にそこまでこだわる必要なし +\とか記号を入れるメアドなんて普通の人は持ってないだろ
449 名前:nobodyさん mailto:sage [2009/03/20(金) 10:23:25 ID:???] >448 なんというか、ここにも馬鹿が多いな。 「食べやすい大きさに野菜を切るには」という記事に「カレーは野菜が大きいほうが美味しい」とか言ってるようなものだぞ、それ。
450 名前:nobodyさん mailto:sage [2009/03/20(金) 10:31:42 ID:???] それ話が通ってるじゃん
451 名前:nobodyさん mailto:sage [2009/03/20(金) 10:49:03 ID:???] RFCに準拠してさえすればいいってもんじゃない
452 名前:nobodyさん mailto:sage [2009/03/20(金) 10:50:52 ID:???] >>449 プロバイダやgmailを除いたメジャーなアドレスで記号付きのメールアドレスを取得できる所教えてください
453 名前:nobodyさん [2009/03/20(金) 11:54:25 ID:MICYHS4W] 【OS名】debian etch 【PHPのバージョン】php5.2.0-8 PukiWiki Plus!で「ajaxtree.inc.php」プラグインを使おうとしたのですが キャッシュファイルの作成が正常に行われず色々と調べてみていたところ 下記の部分でよくわからない動きをしていることがわかりました。 (ajaxtree.inc.php 198行目付近) foreach ($pages as $page) { if ($leaf[$page] === false) { plugin_ajaxtree_update_cache($page); } echo $page . " " . $leaf[$page] . "<br>\n"; //debug } 具体的には「plugin_ajaxtree_update_cache」関数が一度でも実行されると その時点でループが終わってしまい配列の残りの要素が処理されなくなってしまうといった感じです。 (関数から戻ってきたあとのechoまでは処理されています) ループ後の「$pages」の値には特に変化が無く、エラーも発生していませんでした。 なぜforeachが途中で止まってしまうのかわからずに困っています。 この場合、どういった原因が考えられるのでしょうか?
454 名前:nobodyさん [2009/03/20(金) 11:55:01 ID:uQ1BNnXR] トラックバックやpingの受信機能を作っています。 fsockopenで送信されたPOSTやGETを受け取ると思うのですが、 連続送信防止の処理って入れられるのでしょうか? WEBページのフォーム処理からだと、cookieで制御できると思うのですが fsockopenは出来ないような気がしています。
455 名前:nobodyさん mailto:sage [2009/03/20(金) 12:00:40 ID:???] >>453 display_errors error_reporting >>454 内容を比較すればいいのでは?
456 名前:nobodyさん mailto:sage [2009/03/20(金) 12:02:10 ID:???] ゴガギーン ドッカン m ドッカン =====) )) ☆ ∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( )| |_____ ∧_∧ < おらっ!出てこい>>449 「 ⌒ ̄ | | || (´Д` ) \___________ | /  ̄ | |/ 「 \ | | | | || || /\\ | | | | | へ//| | | | | | | ロ|ロ |/,へ \| | | | | ∧ | | | |/ \ / ( ) | | | |〈 | | | | / / / / | / | 〈| | | / / / / | | || | | / / / / =-----=-------- | |
457 名前:nobodyさん mailto:sage [2009/03/20(金) 12:06:26 ID:???] 小飼の正規表現はda.me..@docomo.ne.jpを通せないだろ RFCに準拠するばかりで現実で使えないんじゃ同じようにクソ
458 名前:453 [2009/03/20(金) 12:31:15 ID:MICYHS4W] >>455 ありがとうございます。 該当するコードに特にエラーなどは発生していませんでしたが解決しました。 配列を関数の戻り値の参照として受け取っていたためおかしな挙動をしていたようでした。 $pages =& plugin_ajaxtree_get_pages(); 失礼いたしました。
459 名前:449 mailto:sage [2009/03/20(金) 12:38:12 ID:???] docomoの非準拠アドレスを通すかとか、gmailの無限アドレスを通すかとかは、メールアドレス正規表現とは別の問題だろ? 実装の問題じゃない。ビジネスロジックの問題だ。何をどこまで許容するかは技術の問題じゃない。 コーディングする奴が勝手に決めてはいけない問題だし、従って前提条件が提示されないと「正しい」コードなんぞ書けっこない。 何が「正しい」のか、仕様が決まってないんだから当たり前だな。 「正しい」メールアドレスを「RF2822準拠」と定めるなら、PHPSPOTや百式のコードは明白に間違っていて、小飼のコードは正しい。 docomoの非準拠アドレスを許容しなければいけない、とか、gmailの無限アドを拒否しないといけない、という条件下なら小飼のコードは間違っているだろう。 実際、小飼の出力メッセージはちゃんと「RFCに準拠しているか」で出るだろ。 あのコードが解こうとしている判定問題は「RFCに準拠しているか」であって、「一般社会で通用するメールアドレスか」じゃない。 それをてめえらは勝手に問題を取り替えてガタガタ抜かしてるだけなんだよ。これだからPHPerは馬鹿だとか言われるんだ。 RFCに準拠していないアドレスが通ったり、準拠しているアドがNGだったら文句を言うべきだが、それ以外は筋違いだ。
460 名前:nobodyさん mailto:sage [2009/03/20(金) 12:41:36 ID:???] じゃなんで正規表現をblogに書いちゃいけないの?
461 名前:nobodyさん mailto:sage [2009/03/20(金) 12:47:51 ID:???] >>459 RFCに準拠してる正規表現はブログに書いてもOK RFCに準拠してない現実に即した正規表現はブログに書いたらNG ってことですね、わかります
462 名前:nobodyさん mailto:sage [2009/03/20(金) 13:09:05 ID:???] >>459 ってブログの張本人だろ
463 名前:nobodyさん mailto:sage [2009/03/20(金) 16:03:22 ID:???] >>459 自分ルールを持ち出したのは「PHPer」とか言って悦に入っている人だよな。 っていうか誰この人?
464 名前:nobodyさん mailto:sage [2009/03/20(金) 16:20:44 ID:???] ほとんどの無料有料サービスの登録時にRFCに100%準拠されたメアドは使えない件
465 名前:nobodyさん mailto:sage [2009/03/20(金) 16:21:47 ID:???] ._-0-9a-zA-Zぐらいしかたいていのサービス登録では使えない件 何が言いたいかというとRFC必死だな(笑)
466 名前:nobodyさん mailto:sage [2009/03/20(金) 18:48:51 ID:???] 弾もPHPERも文末判定に$を使っているが $は行末判定なので最後に改行コードが付いてても通ってしまう。 ちゃんと\zを使えよ 弾&phpspotともどもm9(^Д^)プギャー!
467 名前:nobodyさん mailto:sage [2009/03/20(金) 18:51:14 ID:???] $が末尾の改行コードに一致するのってPHPだけじゃなくて?
468 名前:nobodyさん mailto:sage [2009/03/20(金) 18:56:31 ID:???] preg_matchはperl互換だからそれはないだろ
469 名前:nobodyさん mailto:sage [2009/03/20(金) 19:01:48 ID:???] perlが死滅した、といっても、 ある程度のシェアを取った言語なので、 perlの正規表現の文法は他の言語にも そのまま受け継がれていくわけだな。 つまり勉強したことが無駄にならず 再利用できると。 シェアととると、こういう「いいこと」があるんだよな。
470 名前:nobodyさん mailto:sage [2009/03/20(金) 20:16:44 ID:???] 何年か前にperl厨が騒いでた その上でどんなスクリプトでも走るエンジンみたいのどうなったんだよ えーこら
471 名前:nobodyさん [2009/03/20(金) 22:34:03 ID:oZ8fGjsV] javascriptがオンかオフかの情報を知りたいのですがどのような方法が妥当かわかりません 以下のような方法も考えたのですがページを移動するか更新しないとクッキーを読めないので困ってます どなたかアドバイスお願いいたします javascriptでクッキーを発行する ↓ クッキーが読み込めたらjavascriptがオン・読み込めなければオフ
472 名前:nobodyさん mailto:sage [2009/03/20(金) 22:44:55 ID:???] >471 処理の順序を考えれば分かるが、無理。
473 名前:nobodyさん mailto:sage [2009/03/20(金) 22:53:31 ID:???] ajaxでやればできるでしょ
474 名前:nobodyさん mailto:sage [2009/03/20(金) 23:15:48 ID:???] そもそも、ページを移動も更新もしてない状態で、サーバ側でJavascript有効かどうか判断しなきゃ いけない状況って何だろう?
475 名前:nobodyさん mailto:sage [2009/03/20(金) 23:17:56 ID:???] その状況を考えられないならこの業界で食えませんよ
476 名前:nobodyさん mailto:sage [2009/03/20(金) 23:23:33 ID:???] ajaxでリクエスト飛んできたらon、飛んでこなかったらoff
477 名前:nobodyさん mailto:sage [2009/03/20(金) 23:42:53 ID:???] >>475 なんで? Ajax使う前提なら、こんなことで悩まんでしょ。 有効な時にメッセージ出したいなら、Javascriptで出せば良いし、使えない時にメッセージ出したいなら NOSCRIPT使えばいいし。 トップページへのアクセスだけで、Javascriptを有効にしてるかどうかサーバ側に記録を取りたいとか、そんな感じ?
478 名前:nobodyさん mailto:sage [2009/03/20(金) 23:59:59 ID:???] >477 だとしても、JavaScript経由で鯖にアクセスさせるだけだしな。 PHPではできない、というのは正しい。 まあ、質問が抽象的すぎるんでなんとも言えん。どうして質問掲示板の類の質問者は情報を出し惜しみするんだか。
479 名前:nobodyさん mailto:sage [2009/03/21(土) 00:11:32 ID:???] >>478 それはいいがかり。 おまえだって18世紀にペストにかかったら 「ネズミが運んできた病原菌のせいで感染しました」 とは医者には報告しないはずだ
480 名前:nobodyさん mailto:sage [2009/03/21(土) 00:49:23 ID:???] たとえのほうがわかりづらいってどういうことよ
481 名前:nobodyさん mailto:sage [2009/03/21(土) 02:16:36 ID:???] www
482 名前:nobodyさん mailto:sage [2009/03/21(土) 02:24:45 ID:???] そうか?非常に分かりやすい例えに感じたけど
483 名前:nobodyさん mailto:sage [2009/03/21(土) 02:34:45 ID:???] 479=482wwwww
484 名前:nobodyさん [2009/03/21(土) 19:33:45 ID:Kz7V9K+/] 掲示板を作るのですが共同で作る場合、どのようなシステムを導入するといいですか?
485 名前:nobodyさん mailto:sage [2009/03/21(土) 19:35:17 ID:???] >>484 git
486 名前:nobodyさん mailto:sage [2009/03/21(土) 22:18:16 ID:???] サーバサイドのプログラムが永久ループしたらどうやって止めるんですか? そういうのがあると、レンタルサーバ屋に怒られるんですか?
487 名前:nobodyさん mailto:sage [2009/03/21(土) 22:29:13 ID:???] コンセント抜けばおk
488 名前:nobodyさん mailto:sage [2009/03/21(土) 22:35:15 ID:???] >>486 30秒で止まる。
489 名前:nobodyさん mailto:sage [2009/03/21(土) 22:39:17 ID:???] 設定次第だがデフォルトは30秒
490 名前:nobodyさん mailto:sage [2009/03/21(土) 22:46:46 ID:???] 止めるのは鯖屋の仕事だから好きなだけ無限ループさせておk
491 名前:nobodyさん mailto:sage [2009/03/21(土) 23:10:45 ID:???] とっくに想定済みなんですね。 ありがとうございました。
492 名前:nobodyさん mailto:sage [2009/03/21(土) 23:18:28 ID:???] まぁ鯖潰したら損害賠償だけどな
493 名前:nobodyさん mailto:sage [2009/03/21(土) 23:38:44 ID:???] >>492 そんなヤワな鯖ねーよ
494 名前:nobodyさん mailto:sage [2009/03/21(土) 23:40:05 ID:???] >>492 ちょっと中級者ぶりたい年頃だけど外してるの図
495 名前:nobodyさん mailto:sage [2009/03/22(日) 01:29:46 ID:???] いきなり本番とかやらなければ普通起こさないと思うけど>無限ループ
496 名前:nobodyさん mailto:sage [2009/03/22(日) 01:34:00 ID:???] よくCMSなんか見てると、全てのファイルの頭に /** * * @package hogehoge * @version $Id: index.php 0000 2010-01-01 14:00:00Z hogehoge$ * @copyright (c) 2010 fugafuga * @license ttp://opensource.org/licenses/gpl-license.php GNU Public License * */ こんなの見かけるけど、これは手動で書いてるんですか? まさかね?
497 名前:496 mailto:sage [2009/03/22(日) 01:35:02 ID:???] ID
498 名前:496 [2009/03/22(日) 01:35:33 ID:pWqW8Yq7] また間違えたorz ごめんなさい
499 名前:nobodyさん mailto:sage [2009/03/22(日) 03:37:07 ID:???] >>494-495 マジレスつまらん
500 名前:nobodyさん mailto:sage [2009/03/22(日) 05:17:23 ID:???] すいません。CMSなどはHTMLファイルを生成するんですよね メニューに一項目増えた場合 全部のHTMLページを 書き換える処理ってしてるんですか?
501 名前:nobodyさん mailto:sage [2009/03/22(日) 06:09:27 ID:???] >>500 テンプレートにして動的にしてる場合が多い気がする。 スタティックなHTML吐くのはあまり見たことがない。
502 名前:nobodyさん mailto:sage [2009/03/22(日) 06:19:05 ID:???] >>501 つまりmod rewriteってことですか? 素人ですいません。
503 名前:nobodyさん mailto:sage [2009/03/22(日) 06:19:37 ID:???] mod_rewriteがどう関係あるんだ?
504 名前:nobodyさん mailto:sage [2009/03/22(日) 06:22:33 ID:???] つまりHTMLじゃないけれど、HTMLとしてって方法ですか? 自分はプログラムで呼び出すか、SSIしか思い浮かばないです
505 名前:nobodyさん mailto:sage [2009/03/22(日) 06:23:55 ID:???] プログラムで呼び出せば?
506 名前:nobodyさん mailto:sage [2009/03/22(日) 06:25:11 ID:???] CMSってHTMLファイルを作っていくイメージがあったんです すいません。ただ、require include で呼び出したページは グーグルランクつきにくいです SSIにしてみたところ、それよりはわずかにつきやすかったです CMSがHTMLファイルなら、どうやって外部からメニューを 呼び出しているかわからなかったので
507 名前:nobodyさん mailto:sage [2009/03/22(日) 06:28:00 ID:???] 別に動的でもSEO考慮する方法はいくらでもあるべ?
508 名前:nobodyさん mailto:sage [2009/03/22(日) 06:30:30 ID:???] >>507 具体的に教えて下さい お願いします もっどりライトは厳しい感じがしました 結果が
509 名前:nobodyさん mailto:sage [2009/03/22(日) 06:31:26 ID:???] 結果がって?
510 名前:nobodyさん mailto:sage [2009/03/22(日) 06:32:34 ID:???] >>509 グーグルランクのつきが明らかに悪いです(個人の弱小HP) そしてSSIに変えたところ、3つほどつきました 現在SSIのほうがPHPによる外部ページ呼び出しよりランクがつきやすいです 内部は全く変えてないです
511 名前:nobodyさん mailto:sage [2009/03/22(日) 06:33:30 ID:???] じゃSSIでいいじゃん
512 名前:nobodyさん mailto:sage [2009/03/22(日) 06:37:40 ID:???] (;^Д^) そうですか
513 名前:nobodyさん mailto:sage [2009/03/22(日) 07:18:32 ID:???] そう
514 名前:nobodyさん mailto:sage [2009/03/22(日) 09:24:55 ID:???] ひどい自演を見た><
515 名前:nobodyさん mailto:sage [2009/03/22(日) 09:59:58 ID:???] >>492 =499 自分はマジレスじゃなかったことにしようとして外してるの図
516 名前:nobodyさん mailto:sage [2009/03/22(日) 10:04:27 ID:???] >>492 がマジレスなわけないだろ。初心者は半年ROMれよ
517 名前:nobodyさん mailto:sage [2009/03/22(日) 10:06:20 ID:???] またその話かよ A型はひつこいな
518 名前:nobodyさん mailto:sage [2009/03/22(日) 10:11:46 ID:???] ホントに鯖潰したら、普通に損害賠償だけどな。
519 名前:nobodyさん mailto:sage [2009/03/22(日) 10:11:46 ID:???] 初心者(笑)は半年ROMれ(笑)よ
520 名前:nobodyさん mailto:sage [2009/03/22(日) 10:24:48 ID:???] 普通は損害賠償とか面倒なことに発展する前に、凍結されたり追い出されたりする Nucleusでアクセス解析いれたら劇重になって、翌日、鯖停止->強制解約になったよ。オレ
521 名前:nobodyさん mailto:sage [2009/03/22(日) 10:24:54 ID:???] >>515 図星で逆ギレの図
522 名前:nobodyさん mailto:sage [2009/03/22(日) 10:56:19 ID:???] >>492 =499=521 m9
523 名前:nobodyさん mailto:sage [2009/03/22(日) 11:33:37 ID:???] 粘着すぎる いつもむかむかしてるのかな
524 名前:nobodyさん mailto:sage [2009/03/22(日) 11:39:35 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:???] 出力するときに&に置換すればいいじゃん
626 名前:nobodyさん mailto:sage [2009/03/25(水) 16:45:47 ID:???] フォームの処理でmethodがpostの場合、 一度submitで送信した後、更新ボタンを押すと 再度送信するようなアラートが出ますが、 これを出さないようにする方法はないでしょうか? header関数で送信元のページにリダイレクトして戻す方法以外で教えて下さい。
627 名前:626 [2009/03/25(水) 16:47:05 ID:7ip+uIiL] すみません、ID隠してました・・・
628 名前:nobodyさん mailto:sage [2009/03/25(水) 17:24:35 ID:???] >>626 ブラウザの仕様なのでPHPでどうこうできる問題じゃない
629 名前:nobodyさん [2009/03/25(水) 19:52:08 ID:Ut4OfJaE] 俺のマシンはwinXPの32ビットで4Gのメモリを積んでます。 システムのプロパティで見ると3.25GB認識してるのですが PHPでどんなに重い処理をしてもタスクマネージャで見ると700MB位しか使っていません。 PHPのメモリリミットは-1の無制限にしてるのに何で? もっとメモリ使ってくれたら速くなりそうなんだが。 スペックはアパッチ、PHP5
630 名前:nobodyさん mailto:sage [2009/03/25(水) 20:13:46 ID:???] >>629 んなこたーない
631 名前:nobodyさん mailto:sage [2009/03/25(水) 20:38:00 ID:???] メモリ使ったら速くなる?
632 名前:nobodyさん mailto:sage [2009/03/25(水) 20:47:09 ID:???] >>626 「リロード対策」というキーワードでググると 情報が出てくる。 だが、自分には複雑すぎて理解できなかったが。
633 名前:nobodyさん [2009/03/25(水) 21:30:14 ID:POBIuYee] 問題の切り分けレベルですいませんが kokusan.syokuryo.jp/blog_parts.html このblogパーツですが中身のjs↓ kokusan.syokuryo.jp/blogparts/kokusanParts.js を機能丸ごと再現してみたいのですが(用途は勉強、兼遊びで) 再現するのに ■サーバサイドの技術は何が必要か ■ローカル側は.jsだからとりあえずはコピペで十分? という所で(入口ですが)詰まってます。 どなたかご助言plz
634 名前:nobodyさん mailto:sage [2009/03/25(水) 21:32:29 ID:???] まずJavaScriptの基礎から学ぶといいかと
635 名前:nobodyさん mailto:sage [2009/03/25(水) 21:50:38 ID:???] >>629 画像データをメモリ上に読み込んだりしない限り そんな使うことはないだろ 重い処理なんていってもPHPの場合たかがしれてる
636 名前:nobodyさん mailto:sage [2009/03/25(水) 23:08:42 ID:???] >>625 そうですね そもそも&までエスケープする仕様はやりすぎのような・・ 2chでも&はエスケープしてないし。googleも。
637 名前:nobodyさん mailto:sage [2009/03/25(水) 23:23:27 ID:???] >>636 xmlデータにおいては、&は実体参照必須だけどね。
638 名前:nobodyさん mailto:sage [2009/03/26(木) 00:04:21 ID:???] >636 気に食わないなら文句言ってないで自分で実装すりゃいいじゃん。 単純に置換するだけだから、str_replace一発でできるぞ。 俺はやりすぎとは思わないな。入力文字列をそのまま画面に出力したいなら、&の置換もしたほうがいい。
639 名前:nobodyさん [2009/03/26(木) 00:25:15 ID:l1PHOXdz] 数値を0.5刻みでフォーマットしたいのですが、 何かスマートな方法はありますでしょうか? (例) 1.0以上1.5未満 => 1.0 1.5以上2.0未満 => 1.5 2.0以上2.5未満 => 2.0 よろしくお願いします。
640 名前:nobodyさん mailto:sage [2009/03/26(木) 00:35:55 ID:???] >>639 2倍にして切り捨てて半分にする
641 名前:nobodyさん mailto:sage [2009/03/26(木) 00:39:42 ID:???] >>639 四捨五入じゃなくて?
642 名前:nobodyさん mailto:sage [2009/03/26(木) 00:39:59 ID:???] >>638 安全にこしたことはないですが、今回は実体参照を頃されてしまうのが問題なので・・ それにしても、エンコードを意識せず、単に置換したらいいだけなんですか? だとしたら、htmlspecialcharsのエンコード指定は何に使われているんだろう
643 名前:nobodyさん mailto:sage [2009/03/26(木) 00:55:11 ID:???] >>639 round
644 名前:nobodyさん [2009/03/26(木) 01:05:32 ID:fG8U3yBv] MySQLのSQL文のWHEREを $where_ary = array("id"=>"1","name"=>"あああ"); foreach($where_ary as $key=>$value){ $array[] = $key."='".$value."'"; } $where = join("&",$array); と言うように連想配列を使って生成しています。 上記のようにすると、変数に値が入っている場合は大丈夫なのですが、 MySQLの関数(NOWやDATE_FORMATなど)を使いたい時、使えません。 かといって値の部分に関数を記述しても文字列となります。 もっと効率よく生成するには、どのようにすれば良いのでしょうか?
645 名前:nobodyさん mailto:sage [2009/03/26(木) 01:07:24 ID:???] >>642 指定はできるけど、何も使われていない、って情報が どっかのブログに書いてあった
646 名前:nobodyさん mailto:sage [2009/03/26(木) 01:23:03 ID:???] >>644 Zend_Dbの実装はこんな感じ framework.zend.com/manual/ja/zend.db.html#zend.db.adapter.quoting
647 名前:nobodyさん mailto:sage [2009/03/26(木) 01:52:56 ID:???] framework.zend.com/manual/ja/zend.db.select.html#zend.db.select.building.columns-expr
648 名前:644 mailto:sage [2009/03/26(木) 02:06:29 ID:???] >>646-647 これは非常に参考になります。 実際に自分もSQL文の生成にはクラスを使っているので Zend Dbを参考に、独自の仕様にしてみます。
649 名前:nobodyさん [2009/03/26(木) 11:39:12 ID:p1YkL4wy] WindowsにCLIでインストールされたPHPでphp -a ではなく、 ある程度インラインで入力してからまとめて実行したいのですが、 どうすればできますか?
650 名前:nobodyさん mailto:sage [2009/03/26(木) 13:22:22 ID:???] >>649 C:\>php
651 名前:nobodyさん [2009/03/26(木) 18:55:54 ID:JIscrcVE] phpで、「何時間毎に」とか、「何月何日に」とかいう指定で、プログラムを走らせたりメールおくったりするにはどうすればいいでしょうか?
652 名前:nobodyさん mailto:sage [2009/03/26(木) 19:01:47 ID:???] >>651 cron
653 名前:nobodyさん mailto:sage [2009/03/26(木) 19:02:58 ID:???] >>651 それか、そのファイルに対する最終アクセス時刻を記録しておいて、 「前回のアクセスは3日前だな、、、 だったらよし、今回は3日分の処理を一気にやればいいんだな」 とかってプログラムで判断させて、アクセスするたびに その処理を実行するとか。 もちろん、この場合、アクセスがなければ処理も実行されない。
654 名前:nobodyさん mailto:sage [2009/03/26(木) 19:03:41 ID:???] Windowsだったら、タスク スケジューラ それがUNIXのcronと同じ。
655 名前:nobodyさん mailto:sage [2009/03/26(木) 19:08:12 ID:???] >>651 こういうこと? ttp://phpspot.org/blog/archives/2005/11/croncronphp_pse.html
656 名前:nobodyさん mailto:sage [2009/03/26(木) 19:31:31 ID:???] クソサイトの宣伝すんなや web cron
657 名前:nobodyさん mailto:sage [2009/03/26(木) 20:06:05 ID:???] すぐ吠えるDQNって・・・どこまで底辺なんだよ
658 名前:nobodyさん [2009/03/26(木) 20:59:43 ID:JIscrcVE] ありがとう、普通にcronすればよかった、トンクス
659 名前:nobodyさん mailto:sage [2009/03/26(木) 21:05:33 ID:???] >>649 STDINを使えという話ではなくて? jp.php.net/manual/ja/features.commandline.php
660 名前:nobodyさん [2009/03/26(木) 21:23:14 ID:ih4lRG32] PHPのソースを読んでコメントを抽出する正規表現を書きたいのですが どうにもうまくヒットさせることができません /** */ */ の時に長い方がマッチされてしまいます どう書けばいいですか?
661 名前:nobodyさん mailto:sage [2009/03/26(木) 21:32:53 ID:???] "!/\*(.*?)\*/!s"
662 名前:nobodyさん mailto:sage [2009/03/26(木) 21:48:28 ID:???] >>661 できました!ありがとうございました。 *?で最短にマッチさせられるんですね
663 名前:nobodyさん [2009/03/26(木) 23:16:05 ID:46RAjvuH] fgetcsv関数って基本的にwhileとセットで使うの?
664 名前:nobodyさん mailto:sage [2009/03/26(木) 23:23:56 ID:???] retunr値が配列なだけだろ
665 名前:nobodyさん [2009/03/27(金) 07:08:11 ID:viybN2w6] symfonyにあるような、 ディレクトリを再帰的にさらってクラスをリストアップする機能が欲しいのですが どうしたらいいですか? PEARのPHP Parserを使ってみたのですが エラーが出まくって使い物になりませんでした
666 名前:nobodyさん mailto:sage [2009/03/27(金) 08:05:52 ID:???] >>665 既に検討したとは思うが、クラス名を取得する程度なら、Tokenizerで処理しても、 大した手間でもなんじゃないの。 jp.php.net/manual/ja/book.tokenizer.php
667 名前:nobodyさん [2009/03/27(金) 09:19:56 ID:DtOzsPN+] rename関数でフィアルを移動するプログラムを書いています 移動先に同名のファイルがある場合に上書きさせたいのですが 一度unlinkしてからrenameしないと駄目なのでしょうか?
668 名前:nobodyさん mailto:sage [2009/03/27(金) 09:23:54 ID:???] うん
669 名前:nobodyさん mailto:sage [2009/03/27(金) 15:04:57 ID:???] >>666 こんな便利そうなものがあったとは! まさに欲しかったものです ありがとうございました
670 名前:nobodyさん [2009/03/27(金) 15:35:49 ID:LbT/oMC/] ただ今MVCにてアプリケーションを作成していて モデル部分にデータベース関係の処理(selectやdelete)を全てまとめてますが フォームの項目チェックなどのバリデーション関係は モデルではなくコントローラーに記述するべきですかね?
671 名前:nobodyさん mailto:sage [2009/03/28(土) 00:29:13 ID:???] >670 MとCならばC。Cからバリデーション専用クラスを呼び出せ。 ただし、Cにベタ書きで実装するのはオススメできない。Visitorパターンで実装するのが割と良く見る形。 バリデートはほぼ全てのフレームワークに存在する機能なので、おとなしくフレームワークのマニュアルを読んで構成をパクったほうが速いけどな。
672 名前:nobodyさん mailto:sage [2009/03/28(土) 00:34:00 ID:???] バリデーションがC??
673 名前:nobodyさん mailto:sage [2009/03/28(土) 02:42:46 ID:???] 画面やテーブルごとにチェックする項目が異なるのに バリデーションがCはありえない
674 名前:nobodyさん [2009/03/28(土) 06:25:24 ID:xuBHT5om] newしたオブジェクトを変数に代入せずにメソッドを呼びたいのですが そういう書き方ありますか? {new Hoge()}->method() みたいなイメージです
675 名前:nobodyさん mailto:sage [2009/03/28(土) 06:46:27 ID:???] >>674 74street.ddo.jp/index.php?PHP%2Ftips%2Fphp003 これかな? ちなみに、インスタンス化せずメソッドを使う場合、宣言時にメソッドに「static」を付け、「クラス名::メソッド名」で呼び出す。。 class SampleClass { public static function func($a,$b){ return $a + $b; } } $ans = SampleClass::func(1,2);
676 名前:nobodyさん mailto:sage [2009/03/28(土) 08:45:03 ID:???] >>674 それは不可能
677 名前:nobodyさん mailto:sage [2009/03/28(土) 08:49:24 ID:???] >>676 お前、馬鹿だろ 前のレスで完結してるのにわざわざくだらん横槍を入れる必要はない
678 名前:nobodyさん mailto:sage [2009/03/28(土) 08:56:18 ID:???] 静的メソッドしか呼び出せないじゃん
679 名前:nobodyさん mailto:sage [2009/03/28(土) 08:58:31 ID:???] >>676 じゃないが、>>675 は別モンだと思うけどな。 >>674 は何でそんなことしたいんかナゾだけど。目的も書くべきだろ。 ただの興味ということなら、それはそれで良いけど。
680 名前:nobodyさん mailto:sage [2009/03/28(土) 11:44:19 ID:???] というか何の意味があるんだろう
681 名前:nobodyさん [2009/03/28(土) 12:52:45 ID:0oeFWAvW] マニュアルを見てもいまいちわからないのですが $a = 2; $b = $a * 2; echo $b; $a = 4; echo $b; 期待する結果は48ですが実際は44になります。($bには2行目の結果が入ったままってことでしょう) 2行目を$b = &$a * 2;のようにすると24になります。(*2は無視?) 期待する結果を表示するにはどのように記述すればいいのでしょうか。 PHP5.2.6
682 名前:nobodyさん mailto:sage [2009/03/28(土) 14:13:07 ID:???] >>681 言いたい事は理解できた $b は常に $aに入れた値を2倍にする変数にしたいという事だな 2行目の $b = $a * 2 は $bに$aの値を2倍した値を入れるという命令だ だから2行目では$bで$a(2)*2で4が入って3行目で4が出力、 4行目で$aに4を代入しているが5行目では$bは変化無しの4が表示されるから44となる そして $b =& $a * 2 は変数の参照という事になって $b に入れた値は $a にも反映されるという事だ 2行目で変数&bは$aを参照しているとしているから3行目で2が表示されて 4行目で$aに4を入れているが$aと$bは参照の関係にあるから$bは4となり24となる 変数でそんな事が出来るか記憶を辿ってみたが…出てこない 件を解決する簡単な方法は関数を作ることだと思うんだが?
683 名前:nobodyさん mailto:sage [2009/03/28(土) 14:21:32 ID:???] >>681 掛け算の結果にまで参照変数を反映させるのは無理。もう一回掛け算するしかない $a = 2; $b = $a * 2; echo $b; $a = 4; $b = $a * 2; echo $b;
684 名前:nobodyさん [2009/03/28(土) 14:30:41 ID:jCCBzDpK] pChartを使ってレーダーチャートを描いています。 デフォルトでは縦軸にラベル(目盛?10、20、30...など)が表示されるのですが、 これを表示しないようにするにはどうすればよいのでしょうか? 公式のドキュメントを読んだのですが、わかりませんでした。 どなたか分かる方がいましたら、よろしくお願いします。
685 名前:681 [2009/03/28(土) 15:12:28 ID:0oeFWAvW] >>682-683 ありがとうございます。 変数のみでは求めることは無理なんですね。関数で処理することにします。
686 名前:nobodyさん mailto:sage [2009/03/28(土) 15:25:27 ID:???] 多分681がイメージしているような、「$aを2倍して返す処理」自体を$bに変数として格納するような仕組みはクロージャという。 関数をその場で組み立てるイメージだな。普通に関数を使う場合と違い、「2」の部分を$bの生成時に動的に組み込める。 JavaScriptやRubyでは可能、JavaやPHPでは不可能。PHPでは次のバージョンには盛り込まれる見込み。 これもまあ、関数を作っているわけだけど。 クラスを使ったりグローバル変数を使ったりしていいなら、今のPHPでも同じ処理は一応可能。
687 名前:nobodyさん [2009/03/28(土) 16:48:33 ID:y1nm6eda] POSTされた各フォーム毎の項目チェックをする時に、 $_POSTを直接チェックするのは何か問題がありますか? 例 if(!isset($_POST["name"])){ echo "未記入です"; } それか全て一旦POSTを変数に代入してチェックした方がいいですかね?
688 名前:nobodyさん mailto:sage [2009/03/28(土) 17:15:52 ID:???] まったく問題ない
689 名前:687 mailto:sage [2009/03/28(土) 17:25:52 ID:???] >>688 返信ありがとうございます。 なんとなく自信がなく聞いてみたんですが安心しました。 ありがとうございました。
690 名前:nobodyさん mailto:sage [2009/03/28(土) 19:01:42 ID:???] このスレを見ている人はこんなスレも見ています。(ver 0.20) 【ショタ】3次専ショタスレ 12【女装・美少年】 [Download] このスレに変態がいる!!
691 名前:nobodyさん mailto:sage [2009/03/28(土) 19:31:18 ID:???] phpの関数名でググった時 公式のドキュメントじゃなくて phpspotのアフィドキュメントが上位に来るのがむかつくんだけど どうしたらいい? googleで除外urlを指定できたらいいんだけど
692 名前:nobodyさん mailto:sage [2009/03/28(土) 19:36:20 ID:???] >>691 >>1
693 名前:nobodyさん mailto:sage [2009/03/28(土) 22:31:41 ID:???] >>690 呼んだ?
694 名前:nobodyさん mailto:sage [2009/03/28(土) 22:48:03 ID:???] journal.mycom.co.jp/news/2009/03/26/029/index.html
695 名前:nobodyさん mailto:sage [2009/03/28(土) 22:52:21 ID:???] GOTO文wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
696 名前:nobodyさん mailto:sage [2009/03/28(土) 23:16:06 ID:???] GOTOを否定する奴は例外も使うなよ
697 名前:nobodyさん mailto:sage [2009/03/28(土) 23:27:52 ID:???] gotoよりはfinallyが欲しかったねぇ。 なんか都合があるんか知らんが。
698 名前:nobodyさん mailto:sage [2009/03/29(日) 05:04:23 ID:???] gotoってどういうときにつかうの?
699 名前:nobodyさん mailto:sage [2009/03/29(日) 06:25:15 ID:???] 帰ってきてほしくない時
700 名前:nobodyさん mailto:sage [2009/03/29(日) 09:35:20 ID:???] 人生をやり直したいとき
701 名前:nobodyさん [2009/03/29(日) 13:21:29 ID:EDw1f4T+] define("TEST",realpath(".")); という定数があったとして、TESTの中身が「/home/test/public_html」だとします。 通常は、定数指定して include_once(TEST.'/test.php'); としてディレクトリ指定代わりに出来ますが、 定数の中身で表示する事って出来ませんでしょうか?上の例で言うと include_once('/home/test/public_html」'.'/test.php'); と言うように書き出せればと思っています。
702 名前:nobodyさん mailto:sage [2009/03/29(日) 13:28:04 ID:???] 表示ってどこに?ソースコード中に?
703 名前:701 mailto:sage [2009/03/29(日) 13:29:17 ID:???] >>702 fopenでファイル作成する時に、その出力側のファイル上に include_once('/home/test/public_html'.'/test.php'); という形で記述されて欲しいのです。
704 名前:nobodyさん mailto:sage [2009/03/29(日) 13:31:15 ID:???] 意味が分からない fopenでtest.phpを作成するってこと?
705 名前:nobodyさん mailto:sage [2009/03/29(日) 19:34:50 ID:???] fopenはファイル開くだけだろ。PHPとしては動かないよ PHPスクリプトをファイルとして開く理由がわからんが
706 名前:nobodyさん [2009/03/29(日) 20:07:08 ID:g6t/L+Oe] atelier-ps3.jp/rorona/ このサイトいくらぐらい掛かってると思いますか?
707 名前:nobodyさん [2009/03/29(日) 20:07:18 ID:A+4tAAtu] 配列で存在しないキーにアクセスするとnoticeが出るはずですが、 以下のようにすると出ません。 これは何故ですか? error_reporting(E_ALL | E_STRICT); class Hoge { protected $_value = array(); public function & getEntity($key){ return $_value[$key]; } } $hoge = new Hoge(); var_dump($hoge->getEntity('no_key'));
708 名前:nobodyさん mailto:sage [2009/03/29(日) 20:08:51 ID:???] return $this->_value[$key]; でした 結果は同じですが
709 名前:nobodyさん mailto:sage [2009/03/29(日) 20:18:24 ID:???] 参照だから。
710 名前:nobodyさん mailto:sage [2009/03/29(日) 20:20:00 ID:???] リファレンス返してるからだろ
711 名前:nobodyさん mailto:sage [2009/03/29(日) 20:23:38 ID:???] リファレンスだと何故noticeが出ないのですか?
712 名前:nobodyさん mailto:sage [2009/03/29(日) 20:34:22 ID:???] リファレンスって何か知らんで使ってんの?
713 名前:nobodyさん mailto:sage [2009/03/29(日) 21:07:35 ID:???] >>711 参照を張るとzvalが増えて変数を定義したのと同じことになるからな。 計算機の基礎だと思うが。
714 名前:nobodyさん mailto:sage [2009/03/29(日) 22:45:02 ID:???] >>696 強盗みたいだから否定してるのであって例外は問題ない、というのが今の反GOTO派の主流
715 名前:nobodyさん [2009/03/29(日) 23:05:06 ID:lmZMeLkn] 【OS名】CentOS 5.1 【PHPのバージョン】php5.16 【連携ソフトウェア】mysql 【質問内容】 print'<tr>'; while ($row = mysql_fetch_object($res)){ print'<td>'."$row->NAME".'</td>'; } MySQL から 特定のフィールドを取得し,HTML のテーブルに5列ずつ表示しようとしております。 5列毎にprint'</tr>';を挿入して テーブルの行数をかえたいのですが,どのようにすればよろしいでしょうか? 【求める結果】MySQL テーブルのの行数が8行の場合 <tr> <td>NAME1</td> <td>NAME2</td> <td>NAME3</td> <td>NAME4</td> <td>NAME5</td> </tr><td> <td>NAME6</td> <td>NAME7</td> <td>NAME8</td> </tr> お手数ですがよろしくお願いします。
716 名前:nobodyさん mailto:sage [2009/03/29(日) 23:19:48 ID:???] pager?
717 名前:nobodyさん mailto:sage [2009/03/29(日) 23:21:58 ID:???] >>713 なるほど、参照を張ると変数定義と同じになるんですね。
718 名前:nobodyさん mailto:sage [2009/03/29(日) 23:22:53 ID:???] 雑だけど。 $i = 1; while ($row = mysql_fetch_object($res)){ print'<td>'."$row->NAME".'</td>'; if($i == 5){ print'</tr>'; $i = 1; }else{ ++$i; } }
719 名前:nobodyさん mailto:sage [2009/03/29(日) 23:28:38 ID:???] >715 HTMLマークアップが不正な件。 8個の場合、2行目3列目までで終わるが、余った2セルはどう埋めるんだ? >718 <tr>がない。
720 名前:715 [2009/03/29(日) 23:39:03 ID:lmZMeLkn] ご回答ありがとうございます。 >>718 を参考にして, $i = 1; while ($row = mysql_fetch_object($res )){ if($i == 1){ print'<tr>'; } print'<td>'."$row->NAME".'</td>'; if($i == 5){ print'</tr>'; $i = 1; }else{ ++$i; } } としてみました。 >>719 の件については,とりあえず暫定的に MySQL 内の行数を5の倍数にしておきます。 皆様ありがとうございました。
721 名前:nobodyさん [2009/03/30(月) 05:37:45 ID:Sq1DK82P] DBなどすべてUTF-8で構築しております。 そのうえで、xmlWriter()をつかって「EUC-JP」で XMLを書き出したいのですがどうしたらよいのでしょうか? 単にstartDocumentでEUC-JPを指定するだけでエンコードを変更できるのでしょうか? Firefoxでは表示され、safariだとエラーになってしまいます。 $writer = new xmlWriter(); $writer->openMemory(); $writer->startDocument('1.0', 'EUC-JP'); $writer->startElement('root'); (略) $writer->endElement(); $writer->endDocument(); return simplexml_load_string($writer->outputMemory(TRUE)); ちなみに各Directiveの値もメモしておきます。 mbstring.http_input auto mbstring.http_output pass mbstring.internal_encoding UTF-8 mbstring.script_encoding no value ※もうひとつのスレッドでは答えがわからずじまいで、 どうしたらよいかヒントだけでもつかめたらと思います。 どうぞお願いいたします。
722 名前:nobodyさん mailto:sage [2009/03/30(月) 08:22:50 ID:???] マルチ乙
723 名前:nobodyさん [2009/03/30(月) 12:12:19 ID:ObvykTsh] 初心者ですが質問させて下さい。 www.gen-x-design.com/projects/php-thumbnailer-class/ このサイトのthumbnail.inc.phpを使って画像をリサイズしてサムネイルを生成したのですが いまいち仕組みがわからずにいます。 リサイズされた画像はどこかに保存されているんでしょうか?
724 名前:nobodyさん mailto:sage [2009/03/30(月) 12:16:26 ID:???] スクリプトの仕組み解らなくてもOSのファイル検索くらいは使えるだろ
725 名前:nobodyさん [2009/03/30(月) 12:28:05 ID:ObvykTsh] OSのファイル検索? 実際にサイトにアップして表示させてみました。 そしたらリサイズされた画像が表示されたんですが サイトのどこをみても画像が増えた形跡がありません。 リサイズした画像を別に保存するわけではないのですか?
726 名前:nobodyさん mailto:sage [2009/03/30(月) 12:41:43 ID:???] いやだからファイル探したいならファイル検索すればいいじゃん
727 名前:nobodyさん [2009/03/30(月) 12:49:44 ID:ObvykTsh] 検索したくても、どんな形式でどんなファイル名で保存されてるかわからないので 画像のアドレスをみても show_image.php?filename=sample.jpg&width=250&height=250 と書いてあるだけなんです
728 名前:nobodyさん mailto:sage [2009/03/30(月) 13:07:26 ID:???] 別に保存されてないんじゃねーの?
729 名前:nobodyさん mailto:sage [2009/03/30(月) 13:09:40 ID:???] これしてねーんだろ $thumb->save('path/to/file.jpg',80);
730 名前:nobodyさん [2009/03/30(月) 13:13:48 ID:ObvykTsh] あ、それしてないですね それをしないとただ大きい画像を縮小してるだけで意味ないんでしょうか?
731 名前:nobodyさん mailto:sage [2009/03/30(月) 13:26:05 ID:???] サムネで表示しただけで保存されるほうがうっとうしいわ
732 名前:nobodyさん mailto:sage [2009/03/30(月) 13:53:38 ID:???] っということは、大きい画像を元に サイズも容量も小さくして表示ができるってことでいいのでしょうか。 サムネイル画像の保存をせずに
733 名前:nobodyさん [2009/03/30(月) 14:28:36 ID:Nai97eUH] 頭がこんがらがってしまったので質問させて下さい。 データベースを用いてアプリケーションを作る際 例えば該当するIDを選んでupdate、deleteする時に、 該当するIDがある時は正しく削除され、削除されました。 とメッセージを返すんですが何らかの形で該当しないIDが 投げ込まれた時は一般的にはどのような処理をされていますか? まず該当するIDがあるかselectで調べて、ある場合はupdateもしくは deleteで処理みたいな形ですかね? アドバイスよろしくお願いします。
734 名前:nobodyさん mailto:sage [2009/03/30(月) 14:50:52 ID:???] それでいいよ
735 名前:nobodyさん mailto:sage [2009/03/30(月) 15:01:56 ID:???] >>733 jp.php.net/manual/ja/pdostatement.rowcount.php とか類似関数で。
736 名前:733 mailto:sage [2009/03/30(月) 15:12:04 ID:???] >>734-735 返信ありがとうございます。 これまでなんとなくしか理解できてなかったのですが 今スッキリしました。 本当にありがとうございました。
737 名前:nobodyさん [2009/03/30(月) 18:45:52 ID:Gjy/ZAJ6] 【OS名】Ubuntu 8.10 【PHPのバージョン】5.2.6-2ubuntu4.1 【連携ソフトウェア】Apache/2.2.9 【質問内容】 PHPをさわり初めて一日目の初心者です。 header ( "HTTP/1.0 404 Not Found" , true , 404 );で、.htaccessで指定した404エラーページを 表示させたいのですが、ブランクページになって表示されません。 確かに404エラーページはファイル自体が存在していない場合のみ表示されますので、Location:で 存在しないファイルにリダイレクトさせて見たところ、見事404エラーページが表示されました。 しかし、この方法はアドレスが変更されてしまうので、できればそのPHPのアドレスで、404エラー を表示させたいのですが、何か方法はございませんでしょうか。 よろしくお願いします。
738 名前:nobodyさん mailto:sage [2009/03/30(月) 23:26:09 ID:???] >>737 readfileでエラーページの内容をそのまま流しちゃダメなの? jp.php.net/manual/ja/function.readfile.php
739 名前:nobodyさん mailto:sage [2009/03/31(火) 06:15:24 ID:???] クラスについて質問です。 ttp://www.m-fr.net/study/object/object04.html このサイトで、 >で、こうします。 > >obj = new 三角クラス; >適当な変数 = obj->get_1辺の長さ(); // データの取得 >obj->set_1辺の長さ(適当な値); // データの設定 とあるのですが、下の二行は順序が逆の方がよいのでは?と思いました。 setしてからそのsetした結果得られる値をgetする、みたいに。 その方がしっくりくるというか・・ もしかしたら、何か理由(もしくは自分の勘違い)があって、 getをまず書いておいて、そのsetする一行を書く、という形式にしてるのか よくわからないので、教えていただけないでしょうか よろしくお願いします。
740 名前:nobodyさん mailto:sage [2009/03/31(火) 08:44:30 ID:???] 2行目で得た値を3行目で使っているわけではないと思うぞ? getとsetの別々の事例かと あとスレタイ
741 名前:nobodyさん [2009/03/31(火) 10:26:43 ID:MdY2FCLh] WindowsXP上で開発を行っているのですが、 Windowsの絶対パスでrequireで読み込むとエラーになります。 require_once("C:\htdocs\test.php"); ↓ failed to open stream: Invalid argument どうしたら読み込めるようになるのでしょうか?
742 名前:nobodyさん mailto:sage [2009/03/31(火) 10:35:59 ID:???] echo "C:\htdocs\test.php"; やってみそ
743 名前:nobodyさん mailto:sage [2009/03/31(火) 10:53:51 ID:???] >>683 今コード用意しますのでちょっと待っててくださいね
744 名前:nobodyさん mailto:sage [2009/03/31(火) 11:14:25 ID:???] アンカ間違えましたね^^; >>681 さんおすきなほうどうぞ その1 function cale($a,$b) {echo "<p>" .($a * $b). "</p>";} $a = 2; $b = 2; cale($a,$b); $a = 4; cale($a,$b); その2 function cale($a,$b) {echo "<p>" .($a * $b). "</p>"; } // $aと$bはそれぞれ別の値を持てる $a = 2; $b = 2; $cale($a,$b); // $aと$bは常に同じ値になる $b = &$a; $a = 100; cale($a,$b); $a = 5; cale($a,$b);
745 名前:nobodyさん mailto:sage [2009/03/31(火) 11:20:52 ID:???] >>737 rewrite
746 名前:nobodyさん mailto:sage [2009/03/31(火) 12:20:45 ID:???] >>737 あなたのやろうとしてることはおすすめできない
747 名前:nobodyさん mailto:sage [2009/03/31(火) 13:58:39 ID:???] >>737 アパッチ「俺の仕事はもう終わってんだからバックパスすんな」
748 名前:nobodyさん [2009/03/31(火) 15:08:08 ID:H7khy467] +食べ物 ++りんご ++バナナ ++ぶどう ↑の4行を↓のようにhtmlタグとして出力したいのですが wikiみたいなことがやりたいのですがどなたかヒント頂けないでしょうか? <ul> <li>食べ物</li> <ul> <li>りんご</li> <li>バナナ</li> <li>ぶどう</li> </ul> </ul>
749 名前:nobodyさん mailto:sage [2009/03/31(火) 15:12:34 ID:???] wikiのソース見ればいいのでは?
750 名前:nobodyさん mailto:sage [2009/03/31(火) 15:19:27 ID:???] >>749 HTMLソース見てもしょうがないだろw
751 名前:nobodyさん mailto:sage [2009/03/31(火) 15:27:10 ID:???] >>749 そんなんで片付くならこのスレが82代まで行かないでしょw 答えてやればいいじゃんwww
752 名前:nobodyさん [2009/03/31(火) 15:27:12 ID:qal8dqXu] >>738 ,745 ありがとうございます。 >>746-747 本当はファイルが存在しているのに無理矢理サーバーにファイルが存在していないことにして、エラーページを表示させるところが でしょうか。それとも、「header ( "HTTP/1.0 404 Not Found" , true , 404 );」がおすすめできないのでしょうか。 もし、そうであれば、「header("HTTP/1.0 301 Moved Permanently") ;header("Location: www.example.com/ ") ;」 などのリダイレクトであれば大丈夫ですか。
753 名前:nobodyさん [2009/03/31(火) 15:27:13 ID:WkuOnscP] 【OS名】TurboLinux 【PHPのバージョン】4.3.11 【連携ソフトウェア】Apache2 【質問内容】 auto_prepend_fileで指定したファイルが動いてくれません。 .htaccessで、「php_value auto_prepend_file "ap.php"」と記述しました。 ap.phpの中身は「<? echo("test"); ?>」です。 これでhostname/index.php を開くと、 画面上部に「test」と表示されることを期待しているのですが、 TurboLinux + PHP4.3.11のサーバーでは実際は何も表示されませんでした。 もうひとつUbuntu + PHP5.2.4のサーバーがあるのですが、 そちらに同様のコードを設置したところ、意図したとおりに動きました。 何か設定の問題だとは思うのですが、何が問題なのか分からずに困っています。 ひとまず以下のことを試しました。 ・phpinfoを確認 ⇒ auto_prepend_fileのLocal Valueは「ap.php」になっている ・auto_prepend_fileの設定をわざと"ap2.php"にした ⇒ ファイルが読み込めないエラー ・ap.phpの中身をわざと文法エラーにした ⇒ 何のエラーも出ない(display_errorsはon) ・ap.php、index.phpの両方でWarningが出るようにした ⇒ index.phpのWarningのみが表示される ・ap.phpの一行目(<?〜?>の外側)に「aaaaa」を追加 ⇒ 何も表示されない どうもauto_prepend_fileでap.phpを読み込んではいるものの、 ap.phpのコードが実行されていないようです。 この現象について分かる人がいらっしゃいましたらご教示下さい。
754 名前:nobodyさん mailto:sage [2009/03/31(火) 15:50:33 ID:???] >>753 >ap.phpの中身は「<? echo("test"); ?>」です。 <?使えるなら<?=使えよ ていうか<?phpって書く方を推奨
755 名前:nobodyさん mailto:sage [2009/03/31(火) 15:53:09 ID:???] >>753 よくわかんないけど全てのページのヘッダに挿入するならmod_layout ttp://d.hatena.ne.jp/hogem/20090321/1237569005
756 名前:nobodyさん mailto:sage [2009/03/31(火) 19:15:21 ID:???] >>748 質問に対する答じゃないけど、HTMLは <ul> <li>食べ物 <ul> <li>りんご</li> <li>バナナ</li> <li>ぶどう</li> </ul> </li> </ul> こう書いた方がいいと思う。
757 名前:nobodyさん mailto:sage [2009/03/31(火) 20:09:26 ID:???] >>748 ttp://d.hatena.ne.jp/noopable/20090202/1233528691
758 名前:nobodyさん mailto:sage [2009/03/31(火) 22:31:20 ID:???] >674 今日めっけた ttp://d.hatena.ne.jp/anatoo/20090320/1237530764 function ref($obj){ return $obj; } ref(new Hoge)->doSomething(); 良し悪しはともかく、発想は面白い。
759 名前:nobodyさん mailto:sage [2009/03/31(火) 22:32:52 ID:???] そこまでして1行にして何のいいことがあるんだろう
760 名前:nobodyさん mailto:sage [2009/03/31(火) 23:09:23 ID:???] 余計な関数が増えることには何の抵抗もないのかw
761 名前:nobodyさん mailto:sage [2009/03/31(火) 23:32:57 ID:???] 一時変数が(複数の場所で)増える事と関数が増える事のトレードオフなら、俺なら関数を増やす。 このためだけにgetInstance()とかfactory()とか定義したら、関数増やすよりタチ悪いしな。 ただ、一般的な書き方じゃないので、ref()の定義を探さないと読めない=コードの可読性が落ちるのが難点。 JavaScript界の$()みたいに、一般的なハックになったらアリかな。
762 名前:nobodyさん mailto:sage [2009/03/31(火) 23:35:38 ID:???] 他言語でできるのにPHPでできないのがむかつくんだよな
763 名前:nobodyさん mailto:sage [2009/03/31(火) 23:38:29 ID:???] オブジェクトの基底クラスにstaticなnewが実装できたら Hoge::new()->doSomething(); ってできるのにな
764 名前:nobodyさん mailto:sage [2009/04/01(水) 00:05:10 ID:???] singletonでいいじゃん
765 名前:nobodyさん mailto:sage [2009/04/01(水) 01:36:40 ID:???] 一行にしたいって要求に対して、singleton提案するやつw
766 名前:nobodyさん mailto:sage [2009/04/01(水) 01:37:54 ID:???] >>761 いっしょに仕事したくないタイプだわ。なんだよrefって
767 名前:nobodyさん mailto:sage [2009/04/01(水) 02:05:39 ID:???] >>765 一行になるじゃん
768 名前:nobodyさん mailto:sage [2009/04/01(水) 02:20:35 ID:???] メソッドチェーンがやりたいだけだろ
769 名前:nobodyさん mailto:sage [2009/04/01(水) 02:32:15 ID:???] 誰が?
770 名前:nobodyさん mailto:sage [2009/04/01(水) 02:51:42 ID:???] 俺!
771 名前:nobodyさん mailto:sage [2009/04/01(水) 03:16:29 ID:???] singletonはウンコすぎ。singleton依存症は治る病気だから通院したほうがいいぞ 1行で書きたいって理由だけでstaticなクラスメソッドを増やすのは流石にナシだろ だいたい1つや2つならともかく、そういう書き方がしたくなるようなJavaっぽい書き方をしてたら抽象データ型なんて死ぬほどできるわけで そういうクラス全部にstaticメソッド定義すんのかって話になる。継承も使えないし コンストラクタが引数を取るような場合さらに面倒くせえしな まあ、そもそもJavaっぽい書き方なんかするなよ、って言うのが多分正解だけどな $tmp = new Hoge(); $tmp->fuga();でいいだろ 使いもしない一時変数が増えるのがキモいって気持ちは分かるが
772 名前:nobodyさん [2009/04/01(水) 07:15:56 ID:zGetu19r] ファイルをダウンロードできるWebアプリがあって、IE8で保存するフォルダをゆっくり選択してると サーバ側のPHP(5.2.6/Windows)がタイムアウトしちゃうんですが、そういうもんなんでしょうか。 タイムアウト伸ばすしかないのかなぁ。 ファイルが壊れるだけで、一見したところ気がつかないのが、またいやらしい。
773 名前:nobodyさん mailto:sage [2009/04/01(水) 07:21:55 ID:???] てか、singletonは全く別次元の話だろ
774 名前:nobodyさん mailto:sage [2009/04/01(水) 07:26:35 ID:???] >>771 ひとつひとつのクラスにstaticメソッドを実装するってことではなく rubyみたいにすべてのオブジェクトの先祖になるクラスにstaticを実装するって意味。 今でもrunkit使えば可能なのか、どうか知れないが、 標準で出来たらいいなぁ
775 名前:nobodyさん [2009/04/01(水) 08:25:46 ID:wwrEQ3GF] WindowsXPで開発しているのですが、 echo realpath("."); とすると、C:\Program Files\Apache Group\Apache2\htdocs のように\が付きます。これを/に置換すれば良いだけでしょうが、 最初から\ではなく/にして、ディレクトリ名を取得する方法はないでしょうか?
776 名前:nobodyさん mailto:sage [2009/04/01(水) 08:34:02 ID:???] >>771 じゃsingletonじゃなくて普通にインスタンス返すメソッドでいいじゃん
777 名前:nobodyさん mailto:sage [2009/04/01(水) 08:43:29 ID:???] レンたるサーバーなのでMysqlのmax_connectionを増やせまえん。 たまにMysqlへの接続数が多すぎてエラーになります。 そこで、 if(){ 通常通りMysqlへ接続} {接続エラー時の対処} こんな感じにしたいと思ってるんですが、いい関数ありますか?
778 名前:nobodyさん mailto:sage [2009/04/01(水) 09:25:38 ID:???] >>771 でいいだろ。気持ち悪いコードやメソッド増やしたいやつ多すぎ
779 名前:nobodyさん mailto:sage [2009/04/01(水) 09:28:10 ID:???] >>777 die
780 名前:nobodyさん mailto:sage [2009/04/01(水) 09:29:50 ID:???] そもそも、newしてメソッドを一つだけ実行ってのは設計がダメだな。 staticで十分か、コンストラクタに仕事させすぎ。
781 名前:nobodyさん mailto:sage [2009/04/01(水) 09:54:46 ID:???] >>775 Windowsをunixベースにする
782 名前:nobodyさん mailto:sage [2009/04/01(水) 11:02:36 ID:???] >>775 nai
783 名前:nobodyさん mailto:sage [2009/04/01(水) 11:04:49 ID:???] >>777 こっちのほうおすすめ function errorMysql() { エラー処理 exit; } if (!接続) errorMysql
784 名前:nobodyさん mailto:sage [2009/04/01(水) 11:49:45 ID:???] 例外使えよ
785 名前:nobodyさん mailto:sage [2009/04/01(水) 17:33:12 ID:???] 最近書き込み減ったに 貴様らなにしてんのかね
786 名前:nobodyさん mailto:sage [2009/04/01(水) 18:09:20 ID:???] もう一つの某巨大掲示板に移動したんじゃね?
787 名前:nobodyさん mailto:sage [2009/04/01(水) 18:21:05 ID:???] >>786 それってどこよ?
788 名前:nobodyさん mailto:sage [2009/04/01(水) 18:36:52 ID:???] >>785 PHPの仕事を他の人に任せてコーディングの仕事するようになった
789 名前:nobodyさん mailto:sage [2009/04/01(水) 21:00:24 ID:???] >>787 おしえてグー
790 名前:nobodyさん mailto:sage [2009/04/01(水) 23:06:31 ID:???] >774 絶対言われると思った。俺もそれは考えたが、5.3.0より前のPHPでは無理。 親クラスで定義された静的メソッドで、子クラスのインスタンスは生成できない。つまり class Parent{ static function getInstance(){ //do something } } class Child extends Parent{} とあった場合、Parent::getInstance()の実装がどんなだろうと、Child::getInstance()がChildのインスタンスを返すのは不可能。 Childというクラス名すら取得できない。 >780 { new UrlString("pc11.2ch.net/test/read.cgi/php/1236532468/ ") }->domain(); コンストラクタによる依存性注入をしてる場合も、newしてすぐメソッドを呼ぶだけでじゅうぶんな事がある。 引数なしのコンストラクタならばたいていの場合不要ってのは同意。
791 名前:nobodyさん [2009/04/02(木) 09:51:30 ID:ij3728yl] pear.php.net/manual/ja/package.text.text-statistics.intro.php これって日本語は対応してないの?
792 名前:nobodyさん mailto:sage [2009/04/02(木) 10:31:00 ID:???] ソース見りゃ分かんべ
793 名前:nobodyさん [2009/04/02(木) 10:35:42 ID:ij3728yl] >>792 いやいや、、、 まだそこまでレベルいってないですよ だからあなたが代わりに見て判断してください
794 名前:nobodyさん mailto:sage [2009/04/02(木) 10:44:44 ID:???] じゃレベル上げろ
795 名前:nobodyさん mailto:sage [2009/04/02(木) 10:56:23 ID:???] 長い文と難しい単語(音節のたくさんある)の割合で計算してるみたいだから、 原理的には日本語でも計算は可能だろうけど、日本語ではMecabとかないと大変だし、 多分計算式に定義されてる係数は日本語の場合を考慮していないので、 信頼出来る結果のためには自分で文献にあたるとか実地調査して決定する必要があるべ。
796 名前:nobodyさん [2009/04/02(木) 11:12:51 ID:CfxT7le3] 【OS名】windows xp home edition 【PHPのバージョン】php5ぐらい 【連携ソフトウェア】mysql 【質問内容】 フォームのセレクト項目で悩んでいます。 form.phpを表示させるとき、セレクト項目を mysqlから取り出して表示させているのですが (idとその名前) セレクト項目が4つもあるので、何か一気に取り出す方法が あったりするのですか?それとも、一個一個4つのセレクト用に select genre_id,genre_name from genre; (genreはジャンル) というふうにするしかないですか?
797 名前:nobodyさん [2009/04/02(木) 11:30:18 ID:4VqTVZ/0] mysqlの勉強をしてます 以下のようなデータをデータベースに登録してます id,name,age 1,田中,20 2,木村,31 3,坂下,43 このデータをテーブルに書きだしたいのですが pearなどのライブラリを使用しない場合、どのようなコードを書くのが効率いいでしょうか? mysql以外のデータベースは使用しないのでmysqlに特化した書き方をどなたかご教示お願いいたします
798 名前:796 mailto:sage [2009/04/02(木) 11:40:45 ID:???] >>797 $link = mysql_connect('localhost','ユーザ名','パスワード名'); mysql_select_db('データベース名'); $sql = "select * from テーブル名"; $result = mysql_query ( $sql ); while ( $data = mysql_fetch_array ( $result ) ) { $data['id']; $data['name']; $data['age']; } じゃないの?
799 名前:nobodyさん [2009/04/02(木) 11:48:45 ID:e2MYzFKZ] すみません、僕もちょっと似たようなこと?で質問させてください >>797 さんのデータで id,name,age 1,田中,20 2,木村,31 3,坂下,43 とありますが、たとえばID2の木村さんの行だけを取得する場合、 while ( $data = mysql_fetch_array ( $result ) ) { if (2==$data['id']) { $id = $data['id']; $name = $data['name']; $age = $data['age']; break; } } とやってきたのですが、MYSQLではピンポイントで取得することができないってことでしょうか?
800 名前:796 mailto:sage [2009/04/02(木) 11:59:21 ID:???] >>799 嘘だよね? select * from テーブル名 where id=2; あるいは、 where name='木村';
801 名前:nobodyさん mailto:sage [2009/04/02(木) 12:07:31 ID:???] >>796 mysql_fetch_arrayの結果を4回使いまわす
802 名前:796 mailto:sage [2009/04/02(木) 12:09:54 ID:???] >>801 違うんです。4つそれぞれ別なんです。 テーブル結合でも想像できないのでやっぱり4回やらないとだめなのかな
803 名前:nobodyさん mailto:sage [2009/04/02(木) 12:29:08 ID:???] XAMPPをインストールしました。 MySQLにパスワードを設定しようとphpmyAdminでuser テーブルを表示させましたが Hostが%のレコードがありません。localhost と127.0.0.1というのだけです。 パスワードを設定するのはlocalhost と127.0.0.1でいいのでしょうか?
804 名前:796 mailto:sage [2009/04/02(木) 12:40:16 ID:???] $xxx[0] = "genre"; $xxx[1] = "property"; $xxx[2] = "actress"; $i=0; $g=0; while ( $i < count($xxx) ) { $sql = "select $xxx[$i]_id,$xxx[$i]_name from $xxx[$i]"; $result = mysql_query ( $sql ); while ( $data = mysql_fetch_array ( $result ) ) { $xxb[$g][$xxx[$i]]['id'] = $data[0]; $xxb[$g][$xxx[$i]]['name'] = $data[1]; $g++; } $i++; } これでいい?
805 名前:nobodyさん mailto:sage [2009/04/02(木) 12:56:43 ID:???] 気持ちの悪いメンテナンスしづらいコードですね
806 名前:796 mailto:sage [2009/04/02(木) 12:58:10 ID:???] >>805 これでいけました >>796 の質問者です。 一回のSQLで4つのテーブルのIDと名前をゲットできました
807 名前:nobodyさん [2009/04/02(木) 13:01:43 ID:vfSwYPOW] 【OS名】centos 【PHPのバージョン】php5.26 smarty使用 【連携ソフトウェア】mysql 【質問内容】 初めての質問です。 よろしくお願いします。 登録フォームが都合上ページの下部にあるのですが PHPで入力エラーを同じページの同じ登録フォームのある部分に表示しております。 ページ上部に登録フォームのアンカーへ移動するリンクはありますが PHPではいたエラー文言付画面の表示時に下部のアンカーへ移動して表示するには javascript以外に方法はないでしょうか? 要はwww.etc.com/touroku.php#a みたいにやるにはどうすればいいのか、よろしくお願いいたします。
808 名前:796 mailto:sage [2009/04/02(木) 13:05:48 ID:???] 正確に書けば、$xxb[$xxx[$i]][$g]['id'] = $data[0]; かな for($i=0;$i<count($xxb['genre']); $i++) で各セレクト分でしよう
809 名前:796 mailto:sage [2009/04/02(木) 13:26:45 ID:???] >>804 途中で$g=0;を入れるのを忘れました。 $i++の後
810 名前:nobodyさん mailto:sage [2009/04/02(木) 13:51:13 ID:???] 796さん、あなたを下スレ公認回答者に認定いたします
811 名前:nobodyさん mailto:sage [2009/04/02(木) 18:28:53 ID:???] >>807 actionかlocationでの遷移先をそれに設定すればいいのでは?
812 名前:nobodyさん [2009/04/02(木) 19:09:54 ID:vfSwYPOW] >>811 ありがとうございます、できました!!
813 名前:nobodyさん [2009/04/02(木) 21:54:38 ID:SbciSXr8] すません pukiwikiとかの既存ソースを使ってるのですが PHPがサバの設定でポート指定されていて 既存ソースだと、リンク先がPHPの場合、ポート指定が外されてしまうのです TOPページが :7070 で実行してたら 遷移先が :7070 が外れてしまうという状態です 解決方法とかご教授願えますか。 質問場所が悪ければ、聴ける場所なども教えていただけると助かります
814 名前:nobodyさん mailto:sage [2009/04/02(木) 21:56:16 ID:???] pukiwikiの設定でサイトURL入れるとこあるんじゃ?
815 名前:nobodyさん [2009/04/02(木) 22:33:32 ID:SbciSXr8] なるほど… ちょっと探してみます。 ただ、pukiwikiに限らず、他のPHPでも 同じ状況になってしまうので根本解決するための方法など ご存知でしたらお願いします。
816 名前:nobodyさん mailto:sage [2009/04/02(木) 22:33:55 ID:???] 絶対リンクをやめる
817 名前:nobodyさん mailto:sage [2009/04/02(木) 23:10:28 ID:???] スクリプトの先頭でob_start()。 コールバック関数を指定して出力内容を全部受け取り、URLを全部置換する。
818 名前:nobodyさん mailto:sage [2009/04/02(木) 23:15:28 ID:???] 絶対リンク埋め込みだとしてもhttp://で検索すればすぐ書き換えられそうじゃん
819 名前:nobodyさん [2009/04/03(金) 01:14:27 ID:QmVSt/Vd] 【OS名】win xp sp3 【PHPのバージョン】php5.29 【連携ソフトウェア】mysql 【質問内容】 $val = NULL; $query = "insert into test (id, comment) value ($val, 'test')"; 上記のSQLをダンプしてみると NULLを代入した変数$valがNULLとして展開されていません。 もぬけの殻となってしまっています。 ※ダンプしたクエリ insert into test (id, comment) value (, 'test') なのでクエリーを投げるとエラーとなってしまいます。 NULLをinsertしたい場合は変数にいれず、 直接クエリの文に記述しないといけないのでしょうか?
820 名前:nobodyさん mailto:sage [2009/04/03(金) 01:28:48 ID:???] >819 現代人ならプリペアドステートメントを使え。プレースホルダ使える状況でクエリを直接組み立てる奴は原始人。 PDOStatement::bindValue()の第3引数にPDO::PARAM_NULLを指定すれば、NULLをDBに入力できる。 つうか、何もinsertしなければ、デフォルト値であるNULLが入るけどな。 (カラムにnullが許可されており、他のデフォルト値を指定していない場合に限る)
821 名前:nobodyさん mailto:sage [2009/04/03(金) 01:33:38 ID:???] DB上のnullじゃなくて言語上でnullだから無くて当たり前
822 名前:nobodyさん mailto:sage [2009/04/03(金) 01:33:52 ID:???] 単にこうするんじゃないか? $val = 'NULL';
823 名前:nobodyさん mailto:sage [2009/04/03(金) 01:34:01 ID:???] $val = 'NULL'; でNULLをDBに入力できる
824 名前:819 mailto:sage [2009/04/03(金) 01:37:29 ID:???] >>820 >プリペアドステートメント はじめて聞きました。 >何もinsertしなければ、デフォルト値であるNULLが入る これは理解していたのですが、インサート項目が非常に多く、 そのほとんどが必須ではないので、クエリを組み立てるのがめんどくさく 値がわたってこようがこなかろうがすべての項目をインサートさせてしまう感じで作ってしまいました。 プリペアドステートメント勉強します。 ありがとうございました。
825 名前:819 mailto:sage [2009/04/03(金) 01:39:55 ID:???] >>822 >>823 それだと文字列のNULLが入ってしまいました。 間違えてるかもしれないのでまた確認してみます。 ありがとうございます。
826 名前:nobodyさん mailto:sage [2009/04/03(金) 01:44:23 ID:???] されないだろ insert into test (id, comment) value (NULL, 'test')
827 名前:nobodyさん [2009/04/03(金) 02:04:33 ID:7RHF46qi] 申し込みフォームの作成について form1.phpにて記述されたformの内容をPOSTで form2.phpという確認画面で受け取るような プログラムを作ってるんですが、 確認画面にて前に戻るボタンと送信ボタン2つを作りたい場合は それぞれに同じ内容のhiddenを設定するしか方法はないんですかね? もしスマートな方法がありましたらアドバイスよろしくお願いします。
828 名前:nobodyさん mailto:sage [2009/04/03(金) 02:07:57 ID:???] セッション使えば?
829 名前:827 mailto:sage [2009/04/03(金) 02:11:24 ID:???] >>828 返信ありがとうございます。 やっぱりsessionがいいですよね。 もしPOSTでスマートに出来るならと思い聞いてみました。
830 名前:nobodyさん mailto:sage [2009/04/03(金) 02:26:52 ID:???] hiddenとか過去の産物だろ。更新ボタンとか戻るボタンとかでgdgdになるのが目に見えてる
831 名前:nobodyさん mailto:sage [2009/04/03(金) 02:29:07 ID:???] >>827 試してないけど、javascriptでformのactionを変更できるんじゃないの。 msdn.microsoft.com/ja-jp/library/cc409726.aspx このへんは趣味の問題かもしれんが、セッションに値を保持するのは、 同じセッションで複数タブ開かれた場合に動作がおかしくなりやすいから、 あんまりお勧めはできん。
832 名前:nobodyさん mailto:sage [2009/04/03(金) 02:30:00 ID:???] >>830 戻るでグダグダになるのはセッションじゃないかい?
833 名前:nobodyさん mailto:sage [2009/04/03(金) 02:38:12 ID:???] とりあえずhiddenを批判するやつはどこにでもいる
834 名前:nobodyさん mailto:sage [2009/04/03(金) 03:42:37 ID:???] 入力、確認を違うファイルにするとエラー処理がめんどい
835 名前:nobodyさん mailto:sage [2009/04/03(金) 04:07:02 ID:???] php5.3rc1使ってる人に質問です。 php.iniに書いたmb_string系の設定って反映されてますか? あと何故かapcも動かない、、、 いくら設定を見直してもなにが悪いのかわかりません。 解決策をご存知の方いましたら、教えてください。
836 名前:835 mailto:sage [2009/04/03(金) 06:55:01 ID:???] 解決しましたすみません;ケアレスミスでした・・・
837 名前:nobodyさん mailto:sage [2009/04/03(金) 07:27:17 ID:???] >>783 ありがとうございます。それでいってみたいと思います。
838 名前:nobodyさん [2009/04/03(金) 07:28:49 ID:b3GlDVd8] クエリの時のプリペアドステートメントって、どういう効果があるんですか? 一応本では読んだんですがいまいちよくわかりません 簡単に説明お願いします
839 名前:nobodyさん mailto:sage [2009/04/03(金) 08:01:16 ID:???] >>838 繰り返し使われる場合はパフォーマンスが上がることもあるみたいだけど、一番大きいのは SQLインジェクションみたいな攻撃を受けにくくなることじゃないの。
840 名前:nobodyさん mailto:sage [2009/04/03(金) 08:43:25 ID:???] そんなのクオートすりゃ済む話だろ
841 名前:nobodyさん mailto:sage [2009/04/03(金) 08:45:48 ID:???] >>819 もうプリペアでやってるかもしれないけど $a = ""; $var = "'".$a."'"; $query = "insert into test (id, comment) value ($val, 'test')";
842 名前:nobodyさん mailto:sage [2009/04/03(金) 10:01:31 ID:???] NULLと空文字は違うだろw
843 名前:nobodyさん mailto:sage [2009/04/03(金) 10:05:52 ID:???] 昔Oracleしか知らなくてnullとブランク何が違うか客先で質問して大恥かいたことあるぜ
844 名前:nobodyさん mailto:sage [2009/04/03(金) 11:18:56 ID:???] 根拠レスな「このコードはセキュリティがダメだね」発言は居酒屋での「大したことねえなマツザカ(笑」みたいな会話に近い neta.ywcafe.net/000974.html
845 名前:nobodyさん mailto:sage [2009/04/03(金) 11:26:15 ID:???] 俺も思う サンプルコードにこれ見よがしにつっこむ奴なんなの ある側面から切り取ってるんだから瑕疵がないほうがおかしいだろ
846 名前:nobodyさん mailto:sage [2009/04/03(金) 11:29:51 ID:???] 高木先生大の批判は辞めて下さい
847 名前:nobodyさん mailto:sage [2009/04/03(金) 11:45:02 ID:???] >>844 また宣伝か
848 名前:827 mailto:sage [2009/04/03(金) 15:07:28 ID:???] 返事が遅くなりすいません。 フォームの件ですが色々試しましてSESSIONでいくようにしました。 色々とアドバイス本当にありがとうございます。 それでもう一つ質問なんですが、 フォームのチェックボックスの内容をhtmlに直に書かず、 config.phpなどに$val=array("aaa","bbb","ccc"); みたいな感じで記述しhtmlでforeachを使い 全て書き出すみたいな事をしたいんですが、参考書などを確認したら 配列で記述するのではなくfunctionで function val(){ $val = array("aaa","bbb","ccc"); return $val; } という書かれ方がされてました。 関数にせず配列だけが記述すると何かマズイんですか? 質問が少しわかりにくいですがもしよければ アドバイスよろしくお願いします。
849 名前:nobodyさん mailto:sage [2009/04/03(金) 15:17:48 ID:???] >>848 $valの中身を将来的にコードからいじる可能性があるならfunction、 可能性がないなら定数のままでいい
850 名前:nobodyさん mailto:sage [2009/04/03(金) 15:40:20 ID:???] 最近、他人のブログを批判しながら2ちゃんで宣伝してアクセス数稼ぐのが流行ってるのか?
851 名前:827 mailto:sage [2009/04/03(金) 15:41:11 ID:???] >>849 返信ありがとうございます。 例えばこれから先チェックボックスの値dddが増えた場合、 $val=array("aaa","bbb","ccc","ddd"); でも function val(){ $val = array("aaa","bbb","ccc","ddd"); return $val; } でも変わらない気がするんですが・・・ 素人質問本当にすいません。 今から考えてみます。
852 名前:nobodyさん mailto:sage [2009/04/03(金) 15:48:11 ID:???] >>851 いい例が思いつかないのだけどこんな感じ。条件によって変わる場合だな function val(){ $val = array("aaa","bbb","ccc","ddd"); // 天気が雪の場合のみ配列にeeeを追加する if( $this->weather == "snow" ){ array_push( $val, "eee" ); } return $val; }
853 名前:nobodyさん mailto:sage [2009/04/03(金) 15:49:16 ID:???] >>851 前者でおk
854 名前:827 mailto:sage [2009/04/03(金) 16:12:12 ID:???] >>852 >>853 返信ありがとうございます。 今後、配列を元に何か条件をつけるなどの機会がある場合は 関数にしておく方が好ましいという事ですね。 例文まで書いていただき本当にありがとうございました!
855 名前:nobodyさん [2009/04/03(金) 18:24:43 ID:ZpjcrZDP] 文字列のシングルクォーテーションのみを エンティティに変換したいのですが、どうすればいいのでしょうか? htmlspecialcharsはダブルクォーテーションも変換しますし・・。
856 名前:nobodyさん mailto:sage [2009/04/03(金) 18:32:47 ID:???] vs php(VS2005評価版)でデバッグ実行しようとすると 次のエラーが出てしまいます。 何が原因なのでしょうか? Fatal error: Unknown: Failed opening required 'C:/Documents and Settings/繧イ繧ケ繝育畑縺ョ繝ヲ繝シ繧カ/My Documents/Visual Studio 2005/Projects/PHP_TEST/PHP_TEST/index.php' (include_path='.;C:\php5\pear') in Unknown on line 0 文字化けしちゃってますが C:\Documents and Settings\ゲスト用のユーザ\My Documents\Visual Studio 2005\Projects\PHP_TEST\PHP_TEST\index.php のところで何かエラーが発生している様です。 ※phpのコード <?php /* TODO: Add code here */ print("テスト"); ?>
857 名前:nobodyさん mailto:sage [2009/04/03(金) 19:08:16 ID:???] >>855 strtr
858 名前:nobodyさん [2009/04/03(金) 19:44:58 ID:2mI6CRy6] 【OS名】debian linux 【PHPのバージョン】5.2.0 参照渡しで変数を送り 変数が未定義なら空の文字列を返し 変数が定義済みならそのまま返す関数を考えました。 $test = hoge_variable($v); function hoge_variable(&$v) { if(! isset($v) ) { return ''; } return $v; } テストに入る内容は望みのものですが、 変数$vが未定義だった場合、定義されて(?)NULLが入るようです。 この挙動について、どういった理由でそうなるのか、 また$vを未定義のままにする方法はあるのかご教示いただけませんでしょうか。
859 名前:nobodyさん mailto:sage [2009/04/03(金) 20:02:31 ID:???] >>858 &$vのとき、参照を張るには、参照される側のアドレスが必要だから、そこで定義される。値はNULL &$vにしなければよい。
860 名前:nobodyさん mailto:sage [2009/04/03(金) 20:14:47 ID:???] return ''; を return $v=''; でよくね? 定義されてないからNULLだぜ?
861 名前:nobodyさん [2009/04/03(金) 20:15:15 ID:2mI6CRy6] >>859 やはりそんな感じだったんですね。 関数はエラーレベルによっては出るNotice: Undefined variable の対策だったんですけど、&$vでなく$vにするとそこでUndefined variable がでてしまう感じで…。 定義されたくない時は直接issetをしていくしかないということですかね。 というかそもそもUndefined variable回避に対するアプローチが違っているでしょうか…?
862 名前:nobodyさん mailto:sage [2009/04/03(金) 20:18:37 ID:???] 宣言すりゃいいじゃん
863 名前:nobodyさん [2009/04/03(金) 20:35:14 ID:2mI6CRy6] 状況的には例えばこういう未定義かもしれない所からひっばってくる時で、 $flag = $_POST['flag']; そういう意味で先の $flag = hoge_variable($_POST['flag']); だったんですけど、 例えNULLでも配列に定義されてしまうと、 foreachとかする時に邪魔になったりとかそういう感じのことでした。 やはり基本的には $flag = ''; if (isset($_POST['flag'])) { $flag = $_POST['flag']; } みたいなことで行くのがいいのですかね。
864 名前:nobodyさん mailto:sage [2009/04/03(金) 20:46:30 ID:???] フレームワークには用意されてたりするけどね
865 名前:nobodyさん mailto:sage [2009/04/03(金) 22:15:46 ID:???] >>856 文字コードがUTF-8でBOMが入っているとか? UTF-8Nにしてみたら?
866 名前:nobodyさん mailto:sage [2009/04/03(金) 22:53:01 ID:???] >>863 > $flag = ''; > if (isset($_POST['flag'])) { > $flag = $_POST['flag']; > } 自分はそうしてる 変数が増えてくるとコードがのびがちなので 三項演算子使って $flag = isset($_POST['flag'])?$_POST['flag']:null; といった感じにしてる
867 名前:nobodyさん mailto:sage [2009/04/03(金) 23:35:31 ID:???] >838-840 クォートで処理していると、インジェクションが無いか処理を注視しないといけない。 プリペアドステートメントは、インジェクションが無い事が一目で分かる。 SQLの構文と変数が分離されるので見やすくなるって利点もある。 >863 functon getPostedVariable($key){ return isset($_POST[$key])?$_POST[$key]:null; } とかやると楽なのでオススメ。 プログラムの開始時に$_GETと$_POSTとかを丸ごとメンバに持つクラスのインスタンスを生成して、そいつにこの関数を定義する手もある。 メリットが思いつかないレベルならとりあえず忘れておいてもいいけどな。テストが非常にしやすくなる。 $request = new Request($_POST, $_GET); echo $request->post('flag');
868 名前:nobodyさん mailto:sage [2009/04/03(金) 23:36:22 ID:???] Zend_Request使えよ
869 名前:nobodyさん mailto:sage [2009/04/03(金) 23:49:57 ID:???] 宗教上の理由によりお断りします
870 名前:nobodyさん mailto:sage [2009/04/04(土) 01:03:53 ID:???] PHPを勉強し始めたのですがphpではクラスを宣言する場合に、 public private とかって宣言する事は出来ないのでしょうか? public class Test { public function TestMessage() { print("あいうえお"); } }
871 名前:nobodyさん mailto:sage [2009/04/04(土) 01:54:48 ID:???] >>870 classはできない。functionや変数は可能。
872 名前:nobodyさん mailto:sage [2009/04/04(土) 01:54:55 ID:???] >>870 他言語の素養があるおまいさんはまずマニュアルを読みなはれ。
873 名前:nobodyさん mailto:sage [2009/04/04(土) 02:00:30 ID:???] privateなclassってどんなん?
874 名前:870 mailto:sage [2009/04/04(土) 02:00:58 ID:???] >>871 サンクス >>872 .Net(C# / VB.net) & C++とかでこれまで開発をして来ましたが何かばれちゃいましたか。 マニュアルをちょっと読む事にします。 というより一つ疑問なんですけどC#とかC++とかだと次のパターンAでみんな記述しているのに PHPとかだとパターンAの書き方をする人が多いのはなぜでしょうか? C#だと今まで私が関わって来たプロジェクトは100%パターンAで記述されています。 【パターン@】 if( 1 == 1) { } 【パターンA】 if(1 == 1{ }
875 名前:nobodyさん mailto:sage [2009/04/04(土) 02:04:36 ID:???] >>874 両方ともパターン1かよ
876 名前:nobodyさん mailto:sage [2009/04/04(土) 02:05:23 ID:???] まちがえた 両方ともパターン2かよ
877 名前:nobodyさん mailto:sage [2009/04/04(土) 02:08:21 ID:???] VisualStudioのコード補完のデフォルトがそうなってるだけだろ JavaやPHP使いはMSみたいに無駄に行数消費するのを嫌うよ
878 名前:nobodyさん mailto:sage [2009/04/04(土) 02:09:00 ID:???] @とAに見える俺は目がおかしい・・・? てかA括弧閉じてないけど、スペースのことを言ってるのか・・・?
879 名前:874 mailto:sage [2009/04/04(土) 02:11:43 ID:???] ああすまん俺の頭が混乱してた >>874 がどちらのこと言ってるのか良く分からないけど 俺は@はメソッドの時に使う。 一応Zendのコーディング規約に則ってやってるけど 個人の作業なら別にそんなの君の価値観でやればいいだろ
880 名前:878 mailto:sage [2009/04/04(土) 02:13:15 ID:???] あああ俺は874じゃなくて878
881 名前:nobodyさん mailto:sage [2009/04/04(土) 02:14:37 ID:???] >874 PHPの「標準」なコーディング規約には2つの流儀がある。ひとつはZend、ひとつはPEAR。 で、どっちも1番の括弧スタイルを採用してるんだ。 C++で言えば、MSDNの規約とGNUの標準スタイルが一致しているような状況をイメージすればいいかな。そりゃ合わせるだろ? PHPが初めての言語です、って奴が多いのも影響していると思う。 勿論、PHP以前に他の言語を学んでいた奴の中には別のスタイルで書く奴もいる。 俺も2番のK&Rスタイルで書くしな。
882 名前:nobodyさん mailto:sage [2009/04/04(土) 02:16:56 ID:???] >>881 framework.zend.com/manual/ja/coding-standard.coding-style.html#coding-standard.coding-style.control-statements.if-else-elseif if ($a != 2) { $a = 2; } 知ったか乙
883 名前:nobodyさん mailto:sage [2009/04/04(土) 02:18:31 ID:???] >882 悪い、寝ぼけてた。 関数定義とクラス定義の箇所を読んでたわ。 PEARもifはそのスタイルだな。 if ((condition1) || (condition2)) { action1; } elseif ((condition3) && (condition4)) { action2; } else { defaultaction; }
884 名前:nobodyさん mailto:sage [2009/04/04(土) 02:21:18 ID:???] MS厨はfunction名を大文字で始めとけ
885 名前:nobodyさん mailto:sage [2009/04/04(土) 02:25:13 ID:???] classの修飾子にはpublic、final、abstractが使えるよ
886 名前:870 mailto:sage [2009/04/04(土) 02:37:49 ID:???] >>878 >> 879 >> 880 【パターン@】 if( 1 == 1) { } 【パターンA】 if(1 == 1){ 0} の間違いです。括弧が抜けてましたね。 >>877 そう言われれば確かに勝手に整形されちゃいますね。 >>881 なる程2通りの書き方があったんですね。 いずれにせよ@番で統一されているみたいなのでちょっと安心しました。 今後も@で書いて行こうと思います。 (C#)と同じなのでこちらの方が気分的に見やすいです。 PHPでの実務経験が無いので実際の開発現場ではどちらが主に使われているのでしょうか?
887 名前:870 mailto:sage [2009/04/04(土) 02:39:20 ID:???] うーん、どう考えても↓の方が見易いのですが、、、、 皆さんも↓の方が見やすくないですか? >>883 if ((condition1) || (condition2)) { action1; } elseif ((condition3) && (condition4)) { action2; } else { defaultaction; }
888 名前:nobodyさん mailto:sage [2009/04/04(土) 02:39:35 ID:???] 書き込むボタン押す前に見直ししろ
889 名前:nobodyさん mailto:sage [2009/04/04(土) 02:41:13 ID:???] 俺だったらこれだな。極めて合理的だ if ( (condition1) || (condition2) ) { action1; } elseif ( (condition3) && (condition4) ) { action2; } else { defaultaction; }
890 名前:nobodyさん mailto:sage [2009/04/04(土) 02:48:19 ID:???] >>889 うげぇー
891 名前:nobodyさん mailto:sage [2009/04/04(土) 02:51:50 ID:???] >>889 オナニーコード
892 名前:nobodyさん mailto:sage [2009/04/04(土) 02:53:10 ID:???] >887 そのスタイルはないな。見づらい。 インデントスタイルでガタガタ抜かすお前にはPythonが合っていると思う。 Pythonにはどのインデントスタイルが見やすいとかいう議論が一切存在しないぞ。
893 名前:nobodyさん mailto:sage [2009/04/04(土) 03:03:22 ID:???] >>887 視点移動が多くなって見づらい
894 名前:nobodyさん mailto:sage [2009/04/04(土) 03:25:39 ID:???] >>892 >>893 本気で言ってますか? コードを詰めまくって書くよりゆとりを持たせたコードの方が見易いし、 メンテナンス性もあがる気がするのですが。
895 名前:nobodyさん mailto:sage [2009/04/04(土) 03:30:54 ID:???] それはひらがなだけで書かれた文章の方が読みやすいってのと同じレベルの主張だと思う。 まぁコーディングスタイルは宗教論争なんで、不毛なダケなんだけどさ。
896 名前:nobodyさん mailto:sage [2009/04/04(土) 03:31:20 ID:???] ZendとかPEARとか使ってるなら、逆効果だろ 統一させた方が見やすい
897 名前:nobodyさん mailto:sage [2009/04/04(土) 04:00:44 ID:???] 見やすいのはいいけどスクロールしないと下のほうが見えなくなるのが無理
898 名前:nobodyさん mailto:sage [2009/04/04(土) 04:11:29 ID:???] >>887 そんなとこより括弧と条件式の間のスペースを空けろってな
899 名前:nobodyさん mailto:sage [2009/04/04(土) 05:30:26 ID:???] オレ竜で書くのがいちばんさ
900 名前:nobodyさん mailto:sage [2009/04/04(土) 05:58:30 ID:???] >>887 EclipseでJavaとPHPをやってる俺からいうと if (condition) { } のほうが見やすい 他の人も同じようなこといってるが 最初に使い慣れたIDEの標準の補完機能によって どちらが使いやすいか分かれるんだろう あとはコーディング規約の問題
901 名前:nobodyさん [2009/04/04(土) 07:35:04 ID:+rg3YxkW] fopenってロックの引数がないんですが ちゃんとロックされるんですか? 同時書き込みでファイル壊れたりしませんか?
902 名前:nobodyさん mailto:sage [2009/04/04(土) 07:37:06 ID:???] fopenはリソースを指定してるだけ 書き込みを行う関数はfwrite
903 名前:nobodyさん mailto:sage [2009/04/04(土) 07:39:05 ID:???] マニュアルのちょっと上にflockってあるだろ
904 名前:nobodyさん mailto:sage [2009/04/04(土) 07:43:24 ID:???] ロックは別にするんですね ありがとうございました。
905 名前:nobodyさん [2009/04/04(土) 11:05:08 ID:UT159Z4L] winでは動かない関数があるのでこのさい仮想マシン上にlinuxを入れることにしました ノートPCなので容量を抑えたいのですが、linuxしてる方でおすすめのものがございましたら教えて下さい
906 名前:nobodyさん mailto:sage [2009/04/04(土) 11:16:09 ID:???] 俺、クラスや関数は>>874 でいう@、条件文なんかはAで書いてる・・・・
907 名前:nobodyさん mailto:sage [2009/04/04(土) 11:42:14 ID:???] @の書き方って、昔ならではのC言語の関数書くときの引数の型宣言の名残なのかね
908 名前:nobodyさん mailto:sage [2009/04/04(土) 12:46:42 ID:???] 現在Apache+PHP5+MySQL5を使用してWEBサイトを作る練習をしているのですが、 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ hogehoge.html tomato.php に各WEBページ(phpファイル)を置いて localhost/ でアクセスしているのですが、これを C:\Work hogehoge.html tomato.php でアクセス出来る様にするにはどうすれば良いでしょうか・ ※デフォルトのパスをC:\Workにしたいと思っています。
909 名前:nobodyさん mailto:sage [2009/04/04(土) 12:47:32 ID:???] php関係ない apacheのdocument root あと>>1
910 名前:908 mailto:sage [2009/04/04(土) 13:04:00 ID:???] >>909 ありがとうございます。 document root を 【httpd.conf】 DocumentRoot "C:/htdocs" に変更しApacheを再起動したのですが Web サイトによってこのページの表示を拒否されました というエラーが出て一向にページを見る事が出来ません。 なぜでしょうか?
911 名前:nobodyさん mailto:sage [2009/04/04(土) 13:13:06 ID:???] ファイルをC:/Workにおいてるのになんでhttpd.confのほうは「C:/htdocs」にしたん?
912 名前:nobodyさん mailto:sage [2009/04/04(土) 13:41:34 ID:???] >>910 >>1 読め糞野郎
913 名前:nobodyさん mailto:sage [2009/04/04(土) 13:43:54 ID:???] ていうかPHP関係ないって言ってんだろカス
914 名前:nobodyさん mailto:sage [2009/04/04(土) 13:58:00 ID:???] DocumentRoot を C:/Work にすればいいんじゃねーの。 あとID出せよ
915 名前:nobodyさん mailto:sage [2009/04/04(土) 15:00:42 ID:???] documentrootだけ変えても意味ないよ documentrootのディレクトリ設定のパスも書き変えないと意味ないよ
916 名前:908 mailto:sage [2009/04/04(土) 15:19:05 ID:???] >>911 ファイルは、C:/htdocsに配置しました。 >>914 IDを出す、 というのは所謂 fusianasan ですか? >>915 ありがとうございました。 設定ファイル系を色々といじってみたところ無事動作する様になりました。 ありがとうございました。
917 名前:nobodyさん mailto:sage [2009/04/04(土) 15:27:18 ID:???] ルールも守れないような奴は二度と来んな
918 名前:858 [2009/04/04(土) 15:39:59 ID:Q5CHJrya] 遅レスすみません。 >>866 氏>>867 氏他皆様ありがとうございます。 いろいろ試してみたいと思います。
919 名前:nobodyさん mailto:sage [2009/04/04(土) 20:31:48 ID:???] 慇懃無礼なやつだなw
920 名前: 220x151x2x6.ap220.ftth.ucom.ne.jp mailto:sage [2009/04/04(土) 20:44:31 ID:???] ◆質問用テンプレ 【OS名】WindowsXP 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql5 【質問内容】 セッションが破棄されるタイミングがいまいち分かりません。 セッションファイルの数を数える事により、現在サイトにアクセスしている人の 大まかな数を数えているのですが、ブラウザを終了してもセッションファイルは残ったままです。 理想を言えば、ユーザにログインボタンを押してもらい session_destroy を呼ぶ 事によりセッションファイルを削除するのが良いとは思いますが、 如何せんブラウザなのでログアウトボタンが必ず押される保障はありません。 ブラウザが閉じられてから5分したらセッションファイルを削除する、といった事は可能なのでしょうか? 通常セッションは一定時間経てば破棄されるらしいのですが、phpの場合はどこで設定すれば良いのでしょうか?
921 名前:nobodyさん mailto:sage [2009/04/04(土) 20:48:04 ID:???] >>920 >>1
922 名前:nobodyさん mailto:sage [2009/04/04(土) 21:11:33 ID:???] >>920 頑張ってfusianasanしたのはいいんだが君が表示してるのはIPだ IDを出してくれたまえ
923 名前:nobodyさん mailto:sage [2009/04/04(土) 21:12:45 ID:???] ID出てないが一応マジレスするとブラウザが閉じられたという情報は送られません
924 名前:nobodyさん mailto:sage [2009/04/04(土) 21:39:31 ID:???] ttp://jp2.php.net/manual/ja/session.configuration.php いつ消えるかはsession.gc_maxlifetimeで決まる。 集計は、閉じられた情報は取得できないので、セッション変数に「最終利用日時」を記録しておく。 画面を表示するたびにこれを更新して、集計時はその数字を見て判別する、という手がある。 例えば、5分以内にサイトにアクセスした人の人数を「現在サイトにいる人数」と見なすとかな。 ファイルだと大変なので、DBなどの集計しやすい場所にセッション情報を格納するとやりやすい。
925 名前:nobodyさん mailto:sage [2009/04/04(土) 22:06:27 ID:???] >>924 荒らすな
926 名前:nobodyさん mailto:sage [2009/04/04(土) 22:18:43 ID:???] 俺はセッション使わないでアクセスログでオンラインカウンターをやってる
927 名前:920 ◆gRDEQwu9i2 mailto:sage [2009/04/04(土) 22:21:55 ID:???] >>922 これの事だったんですねw 勘違いしてました。 >>923 そうですよね。 >>924 ちょっと色々といじってみます。 >>925 別に荒らしてはいない気がしますが・・・ >>926 DBにアクセス情報を記録させてそこで判定した方が確実で簡単かもしれませんね。
928 名前:nobodyさん mailto:sage [2009/04/04(土) 22:25:35 ID:???] 死ねカス
929 名前:nobodyさん mailto:sage [2009/04/04(土) 22:34:25 ID:???] 春だなw
930 名前:nobodyさん mailto:sage [2009/04/04(土) 22:34:35 ID:???] >>927 まじれすすると、それはトリップ ID表示はメール欄を空白にするかageと書く
931 名前:nobodyさん mailto:age [2009/04/04(土) 23:03:22 ID:???] てst
932 名前:nobodyさん mailto:sage [2009/04/04(土) 23:06:05 ID:???] さくらインターネットでサーバ借りてるんだけど function ExecuteSanitizing(&$strSanitizing) { $strSanitizing = htmlentities($strSanitizing, ENT_QUOTES, mb_internal_encoding()); } $str = "<b>あいうえお</b>"; $str = instance->ExecuteSanitizing($str); echo $str; として出力するとローカルでは文字化けしないのにさくらインターネットだと文字化けしちゃいます。 なぜでしょうか?
933 名前:nobodyさん mailto:sage [2009/04/04(土) 23:26:21 ID:???] エスパーさん出番ですよ
934 名前: p7033-ipbfp405osakakita.osaka.ocn.ne.jp [2009/04/04(土) 23:30:26 ID:UHDnoHcu] 私を笑いものにするがいい
935 名前:nobodyさん mailto:sage [2009/04/04(土) 23:40:07 ID:???] >>932 >>1
936 名前:fusianasan mailto:sage [2009/04/04(土) 23:40:52 ID:???] 俺はfusianasanを制御できるから書きこんでもIP表示されないんだけどさ
937 名前:nobodyさん mailto:sage [2009/04/04(土) 23:43:27 ID:???] >>936 それってどうやってやってんの?
938 名前:fusianasan mailto:sage [2009/04/04(土) 23:46:28 ID:???] >>937 いや、おれ2ちゃんのボランティアやってるからこのぐらいの特権は持ってるよ
939 名前:nobodyさん mailto:sage [2009/04/04(土) 23:48:52 ID:???] f&lrm;usianasan なにがボランティアだつまらん
940 名前:nobodyさん mailto:sage [2009/04/04(土) 23:52:00 ID:???] 釣れたw
941 名前:f&lrm;usianasan mailto:sage [2009/04/04(土) 23:57:19 ID:???] テスト
942 名前:fusianasan mailto:sage [2009/04/04(土) 23:58:04 ID:???] >>939 どうすれば出来るですか? あいうえお
943 名前:fusianasan mailto:sage [2009/04/05(日) 00:00:02 ID:???] てす
944 名前:nobodyさん mailto:sage [2009/04/05(日) 00:06:15 ID:???] >>932 ローカルとさくらのphp.iniのmbstringの設定が違う
945 名前:nobodyさん mailto:sage [2009/04/05(日) 00:30:10 ID:???] >>901 fopenはファイルのポインタを獲得するだけ。 ロックはその後で、別の関数で行う。
946 名前:nobodyさん mailto:sage [2009/04/05(日) 00:31:03 ID:???] ameblo.jp/tondemonight/entry-10178347889.html クラスメソッドをabstractにしようと思いまして、abstractをつけて関数定義したところ、以下のようなエラー。 Class SampleClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods エラーの原因がわからず、30分も調べてしまいました。 原因はclassの定義で本来なら「abstract class SampleClass」 としなくてはいけないところを 「class SampleClass」と定義していたことでした。 エラーメッセージからでは気づきにくいことでした・・・ だとさ
947 名前:nobodyさん mailto:sage [2009/04/05(日) 00:42:58 ID:???] ポインタって言うな
948 名前:nobodyさん mailto:sage [2009/04/05(日) 00:45:11 ID:???] SampleClassには1つのabscractメソッドが含まれます。 だからこのクラスはabstractとして宣言されるか、残りのメソッドを実装しなければいけません。 このメッセージで分かりづらいってなら、どう出せばいいんだろう。
949 名前:nobodyさん mailto:sage [2009/04/05(日) 00:48:33 ID:???] MSもSUNもやってるんだから ZendJapanもエラーメッセージを日本語化すべきだな
950 名前:nobodyさん mailto:sage [2009/04/05(日) 01:35:51 ID:???] 日本語化したら分かるんかい?
951 名前:nobodyさん mailto:sage [2009/04/05(日) 02:02:56 ID:???] >>944 ありがとうございます。ローカルのphp.iniと設定をあわせたところ 正常に表示される様になりました。 ちょっとphp.iniについて質問があるのですが ローカルだと C:\WINDOWS\php.ini という具合にphp.iniファイルを配置しているのですが レンタルサーバ(さくらインターネット)の場合には /home/street-fighter/www/php.ini という具合にphp.iniを自前で用意するのが普通なのでしょうか? ※今後、さくらインターネット以外のサーバを借りるかもしれないのですが、 さくらインターネット以外の場合にも、*/www/直下にphp.iniファイルは保存 するのでしょうか? /home/street-fighter/www/php.ini
952 名前:nobodyさん mailto:sage [2009/04/05(日) 02:07:24 ID:???] >>951 自分が借りているレンタルサーバーの場合、 (1)そもそもユーザーがphp.iniを編集できない (2)php.iniがpublic_htmlの外に置いてあった この2パターンがありました。
953 名前:nobodyさん mailto:sage [2009/04/05(日) 02:09:39 ID:???] >>951 >>1
954 名前:nobodyさん mailto:sage [2009/04/05(日) 02:39:34 ID:???] asobi.sqweebs.com/cdxidyfk/p2ruc43y.php 質問用テンプレ作りました。 どうぞテストもかねて使ってみてください。
955 名前:nobodyさん mailto:sage [2009/04/05(日) 03:48:15 ID:???] ブラクラ注意
956 名前:nobodyさん mailto:sage [2009/04/05(日) 10:38:30 ID:???] >>954 がもしブラクラなら運営板で報告してもらえる
957 名前:nobodyさん [2009/04/05(日) 11:30:01 ID:rlL9K/DC] 変数内の特定の文字列を取得しようと、以下のようにしました。 //$text ----- あいうえお ----- //取得する為の正規表現 preg_match_all("/-----¥n(.*)¥n-----¥n/is",$text,$array) しかし、「-----」の間を上手く取得できません。 どういった正規表現のコードを書けば良いか教えて下さい。
958 名前:nobodyさん mailto:sage [2009/04/05(日) 12:04:57 ID:???] そりゃs修飾子付けたら¥nと.の区別が無くなるがな
959 名前:nobodyさん mailto:sage [2009/04/05(日) 12:10:08 ID:???] せめてこう書けよ ----- ↓ -{5}
960 名前:nobodyさん mailto:sage [2009/04/05(日) 12:10:54 ID:???] -{5}\n(.*)-{5}\n
961 名前:nobodyさん mailto:sage [2009/04/05(日) 12:20:05 ID:???] どうでもいいが改行は必ず\nなのか? \rとか\r\nは含まないんだな?
962 名前:nobodyさん mailto:sage [2009/04/05(日) 12:43:45 ID:???] Linuxサーバでそんなファイル作ったら行末に変な文字出ちゃうぜ 環境によって必要ならそういう対応すればいいだけ
963 名前:nobodyさん mailto:sage [2009/04/05(日) 12:52:14 ID:???] 変な文字っていっても^Mに見えるCR(Carriage return)でしょ ウニックス系で\nと書くとLF(0x0a)を表し、 ウィンドズ系で\nと書くとCR+LF(0x0d 0x0a)を表すのが基本でしょ
964 名前:957 mailto:sage [2009/04/05(日) 13:26:52 ID:???] 皆さん、レスありがとうございます。 ただ、以下のようにしましたが、やっぱり取得できません。 $text = trim(" ----- あいうえお ----- "); preg_match_all("/-{5}\n(.*)-{5}\n/",$text,$array);
965 名前:nobodyさん mailto:sage [2009/04/05(日) 13:52:29 ID:???] lol trim trim trim trim trim trim trim trim trim trim
966 名前:nobodyさん mailto:sage [2009/04/05(日) 13:55:26 ID:???] >>964 >1 スレのルールも守れない奴に正規表現が守れるものか
967 名前:nobodyさん mailto:sage [2009/04/05(日) 13:55:58 ID:???] $str = " ----- あいうえお ----- "; preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m);
968 名前:957 [2009/04/05(日) 14:00:27 ID:rlL9K/DC] 2回目以降もID出すんですね。sage無ければいけないと思っていました。 それで、>>967 のコードをそのままコピーして print_rで出力してみたのですが、やはり文字の「あいうえお」が取得できません。 テスト環境がWindowsXPのファイルがUTF-8ですが、それが関係するのでしょうか? ただ、他の文字コードにしてもやっぱり取得できません。。
969 名前:nobodyさん mailto:sage [2009/04/05(日) 14:03:21 ID:???] うにコードならU修飾子ぐらい付けろや
970 名前:nobodyさん mailto:sage [2009/04/05(日) 14:06:09 ID:???] 俺の環境では取得できるんだがな・・・
971 名前:nobodyさん mailto:sage [2009/04/05(日) 14:08:54 ID:???] 環境によるのかな <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <html xmlns="www.w3.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <body> <?php $str = " ----- あいうえお ----- "; preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m); print_r($m); ?> </body> </html> 結果 Array ( [0] => Array ( [0] => ----- あいうえお ----- ) [1] => Array ( [0] => あいうえお ) )
972 名前:957 [2009/04/05(日) 14:11:33 ID:rlL9K/DC] >>970-971 そうですか・・。 テストしているローカル環境のPHPが5.2.5で 試しにさくらのレンタルサーバ(5.2.8)にもアップして試してみたのですが、 971さんのような結果になりません・・。
973 名前:nobodyさん mailto:sage [2009/04/05(日) 14:11:50 ID:???] 俺はこれでおkだった <?php $text = trim(" ----- あいうえお -----"); preg_match_all("/-{5}\n(.*)\n-{5}/",$text,$array); var_dump($array); ?>
974 名前:nobodyさん mailto:sage [2009/04/05(日) 14:12:26 ID:???] >>972 >>969
975 名前:nobodyさん mailto:sage [2009/04/05(日) 14:18:21 ID:???] まさかと思うけどさー 改行コードがCR+LFだからとかいうオチじゃないよね? もしこれで通ったらぶっ飛ばすぜ <?php $text = trim(" ----- あいうえお -----"); preg_match_all("/-{5}[\n|\r]+(.*)[\n|\r]+-{5}/",$text,$array); var_dump($array); ?>
976 名前:nobodyさん mailto:sage [2009/04/05(日) 14:23:01 ID:???] 別に員だけどさ お尻の改行だけを取るならrtrim("\n",変数)の方が誰が見ても分かりやすくていいと思うんだ
977 名前:nobodyさん mailto:sage [2009/04/05(日) 14:24:31 ID:???] [\n|\r] こういう書き方するなら正規表現もっと勉強したほうがいい
978 名前:nobodyさん mailto:sage [2009/04/05(日) 14:29:09 ID:???] >>975 × \n|\r ○[\r]?\n
979 名前:957 [2009/04/05(日) 14:47:03 ID:rlL9K/DC] >>973-978 全く反応無しです・・。 array(2) { [0]=> array(0) { } [1]=> array(0) { } } という結果にしかなりません・・。 作成手順は、これまでDreamweaverを使っていたのですが、terapadに変更しました。 そしてこれまで挙がっているソースをコピーして保存して実行したのですが、 それでも上記のような結果になります。 文字コードをEUCにしてもSJISにしても結果は同じです・・。 やっぱりPHPのバージョンの問題ですかね・・・
980 名前:nobodyさん mailto:sage [2009/04/05(日) 14:54:28 ID:???] pearの勉強をしよと思ってるんですけど オススメの入門サイトはありますか? できればpearを使った場合のメリットとかも十分に解説されているサイトを希望します。
981 名前:nobodyさん mailto:sage [2009/04/05(日) 15:07:29 ID:???] terapadとかナメてんのかよ サクラエディタとか秀丸とかEmEditor使えよ
982 名前:nobodyさん mailto:sage [2009/04/05(日) 15:24:51 ID:???] 釣りだろ
983 名前:nobodyさん mailto:sage [2009/04/05(日) 16:37:11 ID:???] 最近よくいる低レベル回答者を叩くのが楽しみでここ見てます
984 名前:nobodyさん mailto:sage [2009/04/05(日) 16:38:57 ID:???] 叩いてないじゃん
985 名前:nobodyさん [2009/04/05(日) 22:31:43 ID:QUmCZ8RS] 配列にひらがなのみの文字列を不定数で格納します この配列をあいうえお順でソートしたいと思います 標準関数ではあいうえお順でソートする関数がないので、自分でユーザー定義関数にしようと思います あいうえお順にするためにどのようなアルゴリズムを用いればいいのかどなたかヒントだけでもお願いいたします 【サンプルの配列】 $hiragana = array( "かいわれ", "れたす", "あめ", "さらだ" ); ↑をソートして、結果が↓ $hiragana = array( "あめ", "かいわれ", "さらだ", "れたす" );
986 名前:nobodyさん mailto:sage [2009/04/05(日) 22:36:37 ID:???] sort($hiragana);
987 名前:nobodyさん mailto:sage [2009/04/05(日) 22:46:14 ID:???] >>986 平仮名はソートでけへんよ
988 名前:nobodyさん mailto:sage [2009/04/05(日) 23:08:08 ID:???] >>986 じゃないが、とりあえず utf-8なら問題なくできたみたいだけど、なんか違うのけ?
989 名前:nobodyさん mailto:sage [2009/04/05(日) 23:56:37 ID:???] バイナリ単位での比較だからひらがなだろうができる
990 名前:nobodyさん [2009/04/06(月) 00:09:45 ID:CWy5GQCe] 質問 CGIゲームを設置したんだけど サイトによっては自動的に更新されてるんですよ ページを定期的に読み込むにはどうしたらいいのか教えてください
991 名前:nobodyさん mailto:sage [2009/04/06(月) 00:16:48 ID:???] cron
992 名前:nobodyさん mailto:sage [2009/04/06(月) 01:04:38 ID:???] meta refresh
993 名前:nobodyさん mailto:sage [2009/04/06(月) 04:19:15 ID:???] 次スレ pc11.2ch.net/test/read.cgi/php/1238958898/
994 名前:nobodyさん mailto:sage [2009/04/06(月) 05:48:09 ID:???]
995 名前:nobodyさん mailto:sage [2009/04/06(月) 22:26:16 ID:???] ume