のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,348,157人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 83

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    201 : nobodyさん - 2009/04/10(金) 13:14:39 ID:??? (+67,+29,-43)
    >>199
    マニュアルを読む限り、foreach が式をループ回数だけ評価するようには読めないんだけど。
    っていうか、foreachが式が関数の場合に、関数は評価するが、その引数は評価しないとか、ありえんと思うが。

    http://jp.php.net/manual/ja/control-structures.foreach.php
    202 : nobodyさん - 2009/04/10(金) 13:16:50 ID:??? (+83,+29,-13)
    さてベンチマークの俺の出番ですね
    203 : nobodyさん - 2009/04/10(金) 13:19:31 ID:??? (+63,+29,+0)
    >>202
    お願いします。勇者!
    204 : nobodyさん - 2009/04/10(金) 13:21:58 ID:??? (+42,-30,+0)
    // テスト用変数
    function testAry() {for($a=0;$a<1000;$a++) $h[]=$i;return $h;}
    // タイム測定
    function bench() {return microtime(true);}
    // ベンチマーク表示
    function cale($time) {
    echo "<pre>";print_r($time);echo "</pre>";
    foreach($time as $t) {echo "<p>".($t[1]-$t[0])."</p>";}
    }
    // --------- 比較コード ---------------- */
    $time[0][0]=bench();

    $test = array();
    $h = array_slice(testAry(), 50);
    foreach ($h as $v) $test[]=$v;

    $time[0][1]=bench();

    // ---------- 175のコード ------------- */

    $time[1][0]=bench();

    $test = array();
    foreach (array_slice(testAry(), 50) as $v) $test[]=$v;

    $time[1][1]=bench();

    /* ---------- ここまで ---------------- */

    cale($time);
    205 : nobodyさん - 2009/04/10(金) 13:22:39 ID:??? (+56,+28,-15)
    続き

    テストした結果どちらもたいして変わらない
    206 : nobodyさん - 2009/04/10(金) 13:28:45 ID:??? (+82,+23,-14)
    結論からいえばforの中で関数は使うなってこと
    207 : nobodyさん - 2009/04/10(金) 14:57:47 ID:??? (+139,+27,-1)
    >>206
    頭大丈夫か?
    208 : nobodyさん - 2009/04/10(金) 15:08:18 ID:??? (+67,+29,-15)
    >>207>>175

    ベンチマークみて行ってんならおまえ致傷だな
    209 : nobodyさん - 2009/04/10(金) 15:08:50 ID:??? (+17,-30,-104)
    メールを受け取ったらphpファイルを起動させようとしているのですが上手くいきません。
    昨日から詰まってます。。。。助けてください。
    .forwardのパーミッションは600。メールの転送ができることは確認済みです。
    PHP 5.0.4 FedoraCore

    .forwardの中身
    "| /usr/bin/php -q /var/www/html/test2.php"

    test2.phpは単体で動かせることは確認済みです。
    メールを受け取った後、test2.phpが動いてる様子がありません。。。
    210 : nobodyさん - 2009/04/10(金) 15:10:47 ID:??? (+143,+29,-36)
    >>207ってID出さないスレで正規表現でたたかれてた人物じゃない?
    これ以上触れるとこのスレ荒らされるぞw
    211 : nobodyさん - 2009/04/10(金) 15:16:10 ID:??? (+32,-30,-24)
    >>209
    test2.phpに#!/usr/bin/phpみたいなパスは書いてあるよな?
    212 : nobodyさん - 2009/04/10(金) 15:17:53 ID:??? (+42,-30,-38)
    これでダメならまたおいで

    .forwardの中身
    "| /usr/bin/php /var/www/html/test2.php"

    test2.phpの中身の一行目(パスは自分の環境にあわせてね)
    #!/usr/bin/php -q
    213 : nobodyさん - 2009/04/10(金) 15:18:37 ID:??? (-1,-29,-32)
    >>212
    あ、test2.phpのパーミッションは705か755にしろよ
    214 : nobodyさん - 2009/04/10(金) 15:19:09 ID:??? (+72,+29,-3)
    >>210
    お前が荒らしてるんだよ頭大丈夫か?
    215 : nobodyさん - 2009/04/10(金) 15:20:35 ID:??? (+59,+29,-15)
    わざわざ配列のカウントを変数に入れたりしないから
    PHPだけの糞仕様を広めないでください
    まともな言語なら差は出ません
    216 : nobodyさん - 2009/04/10(金) 15:20:55 ID:??? (+75,+29,-35)
    >>210
    貴様のせいでこのスレに正規表現クンが来たじゃないかww
    責任とって>>175を始末しろよw
    217 : nobodyさん - 2009/04/10(金) 15:23:22 ID:??? (-11,-29,+0)
    215必死w
    218 : nobodyさん - 2009/04/10(金) 15:24:05 ID:??? (+57,+29,-40)
    俺はーラッパーwwwwwwwwww
    バイトはスーパーwwwwwwwwwwwww
    タッパに葉っぱwwwwwwwwwwwwwwww
    詰め込む河童wwwwwwwwwwww
    頭はテンパーwwwwwwwwwwww
    パッパカパーwwwwwwwwwwwwwwwwww
    219 : nobodyさん - 2009/04/10(金) 15:28:04 ID:??? (+6,-29,-4)
    >>215
    >まともな言語なら差は出ません

    ( ゚Д゚)ポカーン
    220 : nobodyさん - 2009/04/10(金) 15:33:34 ID:??? (+3,-29,-73)
    まともな言語というかコンパイラ言語なら差はでないだろうな。
    JAVAやC#なんかからきたやつはforの中でlength書いてるだろうし、
    PHPでも別にcountを中に書いてもいいよ。
    速度ってもミリ秒の誤差程度だし別に気にする必要もない。
    221 : nobodyさん - 2009/04/10(金) 15:35:33 ID:??? (+98,+29,-23)
    >>211
    入れてませんでした。
    だけれど試して見ましたがダメでした。

    >>212
    変化ありませんでした。
    パーミは705でやってます。

    あまりにも解けなさすぎて吐き気が。。。
    222 : 207 - 2009/04/10(金) 15:39:26 ID:??? (-1,-29,-5)
    いや・・・俺が言いたかったのは
    forの中で関数使うな
    for () {
    //ここで使うな
    }
    っていってるのかと思っただけなんだが
    223 : nobodyさん - 2009/04/10(金) 15:41:31 ID:??? (+69,+22,-38)
    >>221
    まず、パイプ前なのか、パイプ後なのか切り分けろや
    とりあえず、シェルスクリプトならうごくかどうかやってみ。
    touch hoge とかでいいから
    224 : nobodyさん - 2009/04/10(金) 15:47:08 ID:??? (+20,-29,-9)
    >>221
    "| /var/www/html/test2.php"
    これでよしっと
    225 : nobodyさん - 2009/04/10(金) 16:08:39 ID:??? (+10,-30,-99)
    >>223
    メールうけとったあとのシェルの動かし方がわからん。
    shhogeというファイルを作ってtouch hogeを書き込む。
    sh shhogeで空ファイルが書き込めることを確認してから
    パーミを705に変更。
    .forwardの中身を"| /var/www/html/shhoge" や
    "| /var/www/html/sh shhoge"にしてみて、メールを受け取ってみたが
    だめだった。


    >>224
    それは最初にやったお。
    test2.phpに#!/usr/bin/phpつけてやってもだめだったお。
    226 : nobodyさん - 2009/04/10(金) 16:10:46 ID:??? (+84,+27,+0)
    一回再起動してもちつけ
    227 : nobodyさん - 2009/04/10(金) 16:29:11 ID:??? (+30,-29,-6)
    .forwardには来てるの?
    228 : nobodyさん - 2009/04/10(金) 17:16:00 ID:??? (+67,+29,-18)
    >>226
    何か変えるごとにメール鯖を再起動してるお。

    >>227
    メールの転送はできてるお。
    229 : nobodyさん - 2009/04/10(金) 17:20:06 ID:??? (+66,+2,-25)
    PHPとは関係ない気がするが、メールサーバのローカル配送ログは確認した?
    230 : nobodyさん - 2009/04/10(金) 17:24:58 ID:??? (-1,-29,-4)
    /usr/bin/php が無かったりしないの?
    231 : nobodyさん - 2009/04/10(金) 17:25:20 ID:??? (+71,+29,-45)
    >>229
    ごめんなさいお。疲れたのでたったいまVMwareを落としたとこだお。
    夜風を浴びて飯食べたら、また来るお。
    メールサーバのローカル配送ログは観方が判らなかったので
    スルーしてたお。あとで確認するお。
    232 : nobodyさん - 2009/04/10(金) 17:33:36 ID:??? (+52,+29,-1)
    とりあえずその言葉使いはやめような
    233 : nobodyさん - 2009/04/10(金) 18:00:19 ID:??? (+44,-29,-52)
    質問させてください。
    レンタルサーバでcronを使って、2chを定期的に監視するプログラムを作ろうと思うのですが、
    公開されているプログラムなどありませんでしょうか?
    スレ違いならすみません。
    234 : nobodyさん - 2009/04/10(金) 18:01:57 ID:??? (+57,+29,-15)
    キミが監視しなくてもすでに他の人が監視してるから大丈夫
    235 : nobodyさん - 2009/04/10(金) 18:23:48 ID:??? (+96,+29,-3)
    >>233
    監視って具体的になにをするのね
    236 : 233 - 2009/04/10(金) 18:44:10 ID:??? (+104,+29,-19)
    >>235
    とりあえず自分のブログに盛り上がっているスレのリンクと、
    先頭数レスの表示をしようと思ってます。
    237 : nobodyさん - 2009/04/10(金) 19:31:13 ID:??? (+71,+29,-4)
    >>236
    専ブラ作るために公開されてる仕様があるのでそれ嫁ができます
    238 : 162 - 2009/04/10(金) 20:32:35 ID:z5toBuCm (+9,+29,-2)
    >>162 はやっぱりないですかね。

    >>164
    多分、質問の意味を理解されてません。
    239 : nobodyさん - 2009/04/10(金) 20:35:19 ID:??? (-6,-29,-15)
    flockしる
    240 : nobodyさん - 2009/04/10(金) 20:38:07 ID:??? (+0,-26,-15)
    >>239
    flockとどういう関係が?
    241 : nobodyさん - 2009/04/10(金) 20:46:12 ID:??? (+57,+29,-17)
    一時的に利用するためのファイルの名前にこだわる理由がわからない
    242 : nobodyさん - 2009/04/10(金) 20:48:58 ID:??? (+64,+29,-60)
    >>238
    まず、自分がどうやってるか書いたら?
    良い方法は?って言われてもな。

    一意な名前を取得する方法なんて腐るほどあるっしょ。
    インデックスを保持するファイルを一つ作っといて、そこで一意を確保してからrenameするとか
    すきなアルゴリズムにしたらいいよ
    243 : nobodyさん - 2009/04/10(金) 20:56:57 ID:??? (+3,-29,-3)
    244 : nobodyさん - 2009/04/10(金) 21:06:39 ID:??? (+51,+28,+0)
    連番でいいよもう
    245 : nobodyさん - 2009/04/10(金) 21:48:10 ID:??? (+108,+30,-139)
    forの中で関数呼び出しはPHPに限らず大抵の言語でもパフォーマンスが落ちる。
    コンパイラや実行環境が最適化してくれる場合もあるし、大した差がつかないのは事実だけどな。
    初心者がやってたら理解していない可能性を考えて訂正するのは正しい姿勢だと思うが。

    >194-196, >204
    ベンチマーク取るにしては処理が短すぎる。
    そのくらいだとPC内のほかのタスクとかがノイズになって意味のある数字が出ない。
    1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
    246 : nobodyさん - 2009/04/10(金) 21:58:27 ID:??? (+57,+29,-26)
    批判する前に自分もコードを出したらいいじゃん
    247 : 209 - 2009/04/10(金) 22:19:41 ID:??? (+87,-30,+0)
    ログを見ても原因らしい原因が判りません。。。。

    .forward
    "| /usr/bin/php /var/www/html/test2.php"

    test2.php
    #!/usr/bin/php -q
    <?php
    print "START";
    system("touch hoge");
    echo "end";
    ?>

    maillog
    postfix/smtpd[3703]: connect from atg-asm1.t-com.ne.jp[218.219.54.53]
    postfix/smtpd[3703]: 2895E5DC486: client=atg-asm1.t-com.ne.jp[218.219.54.53]
    postfix/cleanup[3707]: 2895E5DC486: message-id=<004a01c9b9de$15f7cf10$0701a8c0@XXXXXX551ed45>
    postfix/qmgr[3669]: 2895E5DC486: from=<AAAAAAAAA@tba.t-com.ne.jp>, size=1594, nrcpt=1 (queue active)
    postfix/smtpd[3703]: disconnect from atg-asm1.t-com.ne.jp[218.219.54.53]
    postfix/local[3708]: 2895E5DC486: to=<YYYYYYYYYY@ZZZZZZZZ.homeip.net>, relay=local, delay=0, status=sent (delivered to command: /usr/bin/php /var/www/html/test2.php)
    postfix/qmgr[3669]: 2895E5DC486: removed
    248 : nobodyさん - 2009/04/11(土) 01:44:12 ID:??? (+96,+29,-44)
    パフォーマンス云々よりも
    count()っていうのはループ中に値が変わる可能性があるわけで
    バグによってループする回数が変わってしまう危険性

    っていうほうが避ける理由じゃないかな。。
    249 : nobodyさん - 2009/04/11(土) 01:48:10 ID:??? (+3,-29,-77)
    あと、上のほうにあったJavaScriptの話で

    arr.lengthとfor(x in arr )を同じつもりで使うのは危ないよ。

    例えばDOM使うと、forだと思ったとおりにならないときがあると思う。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について