人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP4とSmarty2.6を使っています。sleep関数を実行しても、埋め込んだ箇所ではなく、スクリプトの最初にsleepが実行されているような動きをします。埋め込んだ箇所で意図した動作をさせるにはphp.iniなどで何らかの設定が必要なのでしょうか?

●質問者: loy
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP スクリプト 意図 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kurukuru-neko
●27ポイント

1. sleepの時間が長すぎる。

php.ini

max_execution_time の値を大きくする

max_input_timeの値を大きくする

http://phpspot.net/php/man/php/ref.info.html#ini.max-executi...

2. sleepが中断されている可能性がある。

(割り込みで中断する)

usleepを使う。

sleep前後で時間をはかり 本当の待ち時間をみる。

$t0 = microtime();

sleep(1);

$t1 = microtime();


http://www.php.net/manual/en/function.sleep.php

◎質問者からの返答

sleepは10秒程度です。requireなども関係しているのでしょうか?


2 ● hive7134
●27ポイント

sleep手前で

ob_flush();
flush();

を実行してみてはいかがでしょうか?


3 ● myawoo
●26ポイント

間違っていたらごめんなさい

sleepする前の処理は何をしているのでしょうか?

もしかして「クライアントへの文字列の出力」ではないですか?

もしそうなら原因は

1) 文字列がバッファに残っていてクライアントへ出力されていない

2) クライアントへ出力されているがブラウザが表示していない

だと思います

1ならflush()、

http://php.s3.to/man/function.flush.html

2ならEthereal

http://www.space-peace.com/ethereal/ethereal.htm

などのパケットキャプチャや

telnetアクセス

http://ash.jp/net/telnet_http.htm

などで確認できます

エスパー回答ですが外れていたらごめんなさい

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ