のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,350,189人
昨日: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
    251 : nobodyさん - 2009/04/11(土) 02:28:50 ID:??? (+48,+30,+0)
    252 : nobodyさん - 2009/04/11(土) 02:36:37 ID:??? (+55,+27,+0)
    こんな関数あったんですね
    ありがとうございました。
    253 : nobodyさん - 2009/04/11(土) 02:55:15 ID:??? (-2,-30,-51)
    headers_listって自分で設定したヘッダしか取得できないんですね
    デフォルトで送る予定のContent-Type: text/http等は
    決めうちで取得させるしかないですか?
    255 : nobodyさん - 2009/04/11(土) 05:49:24 ID:??? (+2,-29,-10)
    >>247
    それで、hogeは出来てないんだよね?
    次はerror_log書いて、PHPのログをチェックかな
    256 : nobodyさん - 2009/04/11(土) 06:24:24 ID:??? (+74,+30,-168)
    >>245
    >1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
    そこまで両者に差が出るとは思えないし
    そんな結果が出るまでやるとなるとメモリが足りなくなるでは?
    できるならぜひベンチ結果をみてみたいが
    というかそんな規模のものPHPじゃ作らないだろうし杞憂な気もするけど・・・

    >>248
    >count()っていうのはループ中に値が変わる可能性があるわけで
    >バグによってループする回数が変わってしまう危険性
    だいたいこういう処理は配列を1つずつ取り出す場合に使うのであって
    対象の配列数が変わるような処理をやるほうがおかしいのでは?
    具体的にどのようなことをするのか検討もつかないけど・・・
    バグによってループ回数が変わるっていうのも意味不明

    >>183もナイワと批判を書くのではなくて
    外におけばPHPではパフォーマンスがあがるという注釈をつければここまで伸びなかった
    257 : nobodyさん - 2009/04/11(土) 06:53:18 ID:/nX8neeQ (+99,+29,-77)
    PDOのマニュアルには失敗した時の動作が、書かれてないんですが、
    このあたりはドライバ依存ってことなんでしょうか?

    http://jp.php.net/manual/ja/pdo.query.php
    http://jp.php.net/manual/ja/pdo.exec.php

    例外で処理するのか戻り値で処理するのか、イマイチわかりません。
    とりあえず、今使ってるSQLiteでは戻り値で判断できるみたいですが、ちょっと不安だなぁと言うことで。
    258 : nobodyさん - 2009/04/11(土) 07:09:52 ID:??? (+6,-29,-16)
    >>257
    PDO用の例外があるでしょ
    PDOExceptionだったかな
    259 : nobodyさん - 2009/04/11(土) 07:17:24 ID:??? (+67,+29,-3)
    >>257
    失敗しても気にするなよ。諦めたらそこで試合終了だよ
    260 : nobodyさん - 2009/04/11(土) 07:18:25 ID:??? (-1,-29,-51)
    >>258
    でたらめなSQL書いてqueryしても例外でないんですよ。
    で、戻り値はfalse

    ちなみに環境は PHP5.2.9 とWindows版にバンドル版されてるSQLite です。
    263 : nobodyさん - 2009/04/11(土) 08:31:57 ID:??? (+56,+28,-1)
    コードが長けりゃどこかにうpすればいいのに
    264 : 247 - 2009/04/11(土) 09:40:31 ID:??? (-1,-29,-13)
    >>255
    error_logはsystemの戻り値の判定のところに書けばいいの?
    265 : nobodyさん - 2009/04/11(土) 10:03:46 ID:??? (+57,+29,-8)
    とりあえず、どこまで出来てるのか確認するのが基本
    だから、<?phpの後でいいんじゃね?
    266 : 247 - 2009/04/11(土) 10:37:14 ID:??? (+3,-30,-109)
    エラーログを吐き出すようにしてみました。
    単体でtest2.phpを動かすとログを出しますが、
    メールを介して動かしてもログが吐き出されませんでした。

    maillog
    (delivered to command: /usr/bin/php /var/www/html/test2.php)

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

    test2.php
    #!/usr/bin/php -q
    <?php
    error_log("テストエラー",0);
    system("touch hoge");
    ?>
    267 : 247 - 2009/04/11(土) 10:48:01 ID:??? (+47,-30,-100)
    forwardでコマンドは実行されているみたいですがtest2.phpは動いていない。
    ・.forwardの中が間違っている。→/usr/bin/phpは存在する。 
                   →/var/www/html/test2.phpでtest2.phpを
                    動かせる。
    ・パーミッションが間違っている。→.forwardを600 test2.phpを705or755

    あと考えられる事象はなんでしょうか。
    268 : nobodyさん - 2009/04/11(土) 11:22:57 ID:??? (+62,+29,-8)
    >>267
    ディストリは何使ってるんだ?
    それがわかれば同じ環境作ってやってみるけど
    269 : nobodyさん - 2009/04/11(土) 11:32:38 ID:??? (+11,-30,-18)
    >>267
    .forward
    "| /usr/bin/php -q /var/www/html/test2.php"
    にしてみ
    270 : nobodyさん - 2009/04/11(土) 11:35:55 ID:??? (+5,-30,-15)
    .forward
    "| /var/www/html/test2.php"

    うちは、これで動くけど?
    271 : nobodyさん - 2009/04/11(土) 11:59:26 ID:??? (+12,-29,-23)
    まず
    "| touch /tmp/hoge"

    ってやってみて処理してるユーザ名を把握してはどうだろう
    272 : 247 - 2009/04/11(土) 12:15:02 ID:??? (+6,-29,-53)
    >>267
    ディストリというのは環境という意味でいいのかな?
    PHP 5.0.4kfedoracore4です。

    >>269
    >>270
    試してみました。

    >>271
    suxxxxxxxのユーザーの空ファイルとなりました。
    ……test2.phpはroot。……まさか。。。
    274 : 247 - 2009/04/11(土) 12:23:05 ID:??? (+4,-30,-34)
    >>271

    作成されたファイルhoge
    -rw------- 1 suXXXXXXX suXXXXXX 0 4月 11 08:36 hoge
    .forward
    -rw------- 1 suXXXXXXX suXXXXXXX 20 4月 11 08:35 .forward
    test2.php
    -rwx---r-x 1 root root 112 4月 11 08:02 test2.php

    ごく。
    276 : nobodyさん - 2009/04/11(土) 12:43:26 ID:??? (+49,+26,-25)
    うん
    スーパーグローバルは使うけど
    277 : nobodyさん - 2009/04/11(土) 13:12:41 ID:??? (+63,+30,-251)
    スーパーグローバルは便利だが、テストしにくくなる。
    モジュールごと、クラスごとにテストを書かないといけないような、ややっこしいコードを作る時は避けた方がいい。

    グローバル変数は使うべきではない、とされている。
    これは、グローバル変数はどこでどう値が変えられるか分からないのが最大の理由。
    ある時点でグローバルに何が入っているかは、プログラムの最初から最後まで全部読まないと分からない。
    不具合発生時に原因を特定しづらいし、機能追加時などにどの時点でどの変数がどうなってるか分かりづらくなる。

    いっぽう、一時変数は、その関数の中で生成され、その関数が終わったら消えるので、その関数の中だけ見れば値が分かる。
    グローバルに依存しない関数は、同じ引数を渡せば同じ結果が常に返って来る。
    プログラムのどこで呼ばれても(引数が同じならば)同じ結果が返る事が保証されているので、バグの原因を探しやすい。
    278 : 247 - 2009/04/11(土) 14:11:26 ID:??? (+3,-30,-62)
    ディレクトリィのパーミッションを777に変えてたら
    test2.phpまで届いてログが出るようになりました。
    ですが、system("touch hoge")が実行されず
    まだ空ファイルが作られない状態です。
    279 : nobodyさん - 2009/04/11(土) 14:16:55 ID:??? (+4,-30,-50)
    file_put_contents("/tmp/hoge.txt", realpath("."));を書いてみて、
    カレントディレクトリを把握してはどうだろう。そしたらパーミッションを確認してと・・
    281 : nobodyさん - 2009/04/11(土) 14:42:45 ID:??? (+36,-30,-21)
    >>280

    >注意: セーフモード が有効な場合、 safe_mode_exec_dirの中にある実行プログラムのみ実行可能です。実際的な理由により、現在、実行プログラムへのパスに ..を含めることはできません。
    282 : nobodyさん - 2009/04/11(土) 14:53:15 ID:??? (+33,-30,-22)
    じゃあsystem("touch /path/to/hoge");みたいに書くか
    chdir("/path/to");を先に書いておくか・・
    283 : 247 - 2009/04/11(土) 15:06:27 ID:??? (+97,+29,-23)
    >>281
    セーフモードは無効になっていました!

    >>282
    できた! 

    ようやく全て結合してDBも動きました。
    ありがとうございます!
    284 : nobodyさん - 2009/04/11(土) 15:29:01 ID:??? (+80,+30,+0)
    285 : nobodyさん - 2009/04/11(土) 15:57:01 ID:??? (-6,-30,-184)
    >>254
    nameはクライアントの自己申告
    move_uploaded_file() や header('Content-Disposition: attachment; filename=""') なんかに使う時は
    使っていい・出力していいファイル名か審査する必要がある
    sizeとerrorはPHPが決める値なのでそのまま使える
    このあたりの処理は /main/rfc1867.c に書いてある
    286 : nobodyさん - 2009/04/11(土) 16:07:02 ID:??? (+71,+29,-18)
    >>283
    名を名乗るほどのモンじゃねえから礼はいいってことよ
    287 : nobodyさん - 2009/04/11(土) 16:16:03 ID:/nX8neeQ (+38,+29,-1)
    >>284
    ありがとう。なんで見逃してたんだろ。
    すんません。
    289 : nobodyさん - 2009/04/11(土) 16:23:20 ID:??? (+41,+30,+0)
    290 : nobodyさん - 2009/04/11(土) 21:29:10 ID:??? (-2,-30,-304)
    >>288
    これでいいかい?

    // GD パート
    $image = imagecreatefromjpeg('original.jpg');
    ob_start();
    imagejpeg($image);
    $source = ob_get_clean();

    // ImageMagick パート
    $command = 'convert jpeg:- -resize 80x80 png:-';
    $ds = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'));
    $process = proc_open($command, $ds, $pipes);
    fwrite($pipes[0], $source);
    fclose($pipes[0]);
    $dest = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    proc_close($process);

    // 出力
    header('Content-Type: image/png');
    echo $dest;
    291 : nobodyさん - 2009/04/11(土) 22:15:46 ID:??? (+57,+29,-7)
    レスありがとうございます。
    まだ帰れず試せないのですがもどったらやってみてまた報告します。
    292 : nobodyさん - 2009/04/11(土) 22:32:59 ID:??? (+39,-30,-134)
    さくらインターネットスレで質問したのですが誰もわかる人がいないので
    こちらにて質問させて下さい。


    FreeBSDにTeraTermで接続しコマンドラインから

    php /home/my-account/www/Test.php

    とすると正常に実行出来るのに
    さくらインターネットのサーバコントロール画面からcronの実行コマンド項目に
    上記命令をコピーして「送信」ボタンを押して時間を指定して実行しているのですが
    まったく実行されません。

    どうすればcronを実行させる事が出来ますか?
    293 : 292 - 2009/04/11(土) 22:37:47 ID:??? (+38,+15,+0)
    自己解決しました。
    294 : nobodyさん - 2009/04/11(土) 22:38:31 ID:??? (+31,-29,-17)
    さくらインターネッツのコンパネ設定とか知らないけど
    telnet(ssh?)とか使えるんなら普通にcrontab -eで編集できるんちゃうん
    295 : nobodyさん - 2009/04/12(日) 00:20:41 ID:??? (+82,+19,+1)
    >>292
    激しく板違い
    296 : nobodyさん - 2009/04/12(日) 00:26:07 ID:??? (+66,+29,+0)
    >>294
    サンクス。

    >>295
    だから解決したって。
    297 : nobodyさん - 2009/04/12(日) 04:19:11 ID:??? (+57,+29,-5)
    テストファーストってした方がいいのかどうか微妙すぎて踏み切れん
    298 : nobodyさん - 2009/04/12(日) 08:30:14 ID:??? (-2,-30,-123)
    <?php
    if( ( $stdin=fopen('php://stdin','r') )==true ){
    while( !feof($stdin) ){
    $line = stripslashes( fgets($stdin,4096) );
    error_log("$line",0);
    }
    fclose($stdin);
    }
    ?>

    受け取ったメールの編集をしたいのですが、
    読み込んだメールをログに出力すると、文字化けしています。
    299 : nobodyさん - 2009/04/12(日) 08:38:24 ID:??? (+17,+0,-1)
    報告乙
    300 : nobodyさん - 2009/04/12(日) 11:07:11 ID:??? (+0,-28,-8)
    phpspotとネタ帳の次で現れる第三の厨房
    http://www.itt-web.net/modules/xeblog/?action_xeblog_details=1&blog_id=314
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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