はじめして。
最大実行時間超過のエラーで困っています。
web上からファイルを取得する場合に、
$fcontents = @join('', file("$url"));
などとしていますが、
$urlのサーバーが落ちていたりすると、
最大スクリプト実行時間のエラーとなり、
繰り返し処理で連続してファイルを取得する場合に、
スクリプト全体が止まってしまって困っています。
処理の前に、一時的に
set_time_limit(300);
などとしても、結局その時間内にサーバーからの応答がないと
エラーとなってしまいます。
ある一定時間、サーバーからの応答がない場合、
その$urlの処理だけを飛ばすような方法がありましたらご教授ください。
宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
fsockopen() を使うとTCPコネクション確立までの時間上限を設定できます。
TCPコネクション確立後に、相手側からなかなかデータが送られてこないことも考えられます。その場合には、stream_set_timeout() でタイムアウトできます。
file() よりも手間が掛かりますが、私は上記の方法でタイムアウト処理を実装していました。
こんな感じであっているのでしょうか?
$fsock_url = parse_url($url);
$fp = @fsockopen($fsock_url['host'],80,$errno,$errmsg,10);
if(fp){
stream_set_timeout($fp, 10);
#実行処理
}
もう少し調べてみます。
ご回答ありがとうございました。
No.1
- 回答日時:
<?php
$url = 'www.yahoo.co.jp/';
if (file_exists( $url )) {
$fcontents = @join('', file("$url"));
}
?>
存在確認をしてから処理をかければいいと思いますよ。
参考URL:http://jp2.php.net/manual/ja/function.file-exist …
$url = "http://search.yahoo.co.jp/";
if (file_exists($url)){
print "ok";
}
else {
print "no";
}
試しに上記で試したのですが、「no」と出力されました。
なぜでしょう?(笑)
ご回答ありがうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
アップロードファイルを表示す...
-
返信機能のツリー構造の深さを...
-
ゆゆにゃ。
-
ファイルの書き込みについて教...
-
php ラジオボタン
-
複数のパソコンの中の1つのパソ...
-
php 確認表示画面で値をSESSION...
-
PHPで画像の渡しが上手く行きま...
-
php エラー
-
秀丸でPHPの構文チェック(Synta...
-
PHPについて。
-
phpのheader("Location:#pos")...
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
-
phpに関わる所での、form actio...
-
【初心者】XAMPPのapacheの(恐...
-
プログラミング言語で、使える...
-
こちらはただの直列処理ですか?
-
PHPでこのコード自体に意味は無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NET(VB)VBソースからJavas...
-
JSTLを利用してJavascriptの結...
-
PHPでフォームの自動入力できま...
-
ブラウザ閉じたらサーバー処理...
-
sleepの負荷
-
読み込み中に「Now Loading」を...
-
呼び出し元のURLを知りたいのです
-
PHPでpostされた値をクライアン...
-
PHPでメッセージボックス表示
-
jQueryのAjaxで通信の途中結果...
-
php ob_flushが全く動作しない
-
PHPにコネクションプールってあ...
-
関数内の排他制御について
-
PHPでリアルタイムカウンターを...
-
10秒毎に同じプログラムを繰り...
-
入力されたURLから、そのページ...
-
PHPのプログラムが同時に呼び出...
-
WinSockにおけるポーリングの是...
-
may be mail server is downと...
-
PHPで タイピング練習サイトを...
おすすめ情報