我正在致力於一個PHP腳本,使API調用到外部網站。但是,如果此網站不可用或請求超時,我希望我的函數返回false。防止在PHP中超時
我發現下面的,但我不知道如何實現它在我的劇本,因爲我用「的file_get_contents」檢索外部文件調用的內容。
Limit execution time of an function or command PHP
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
echo "Unable to open\n";
} else {
fwrite($fp, "GET/HTTP/1.0\r\n\r\n");
stream_set_timeout($fp, 2);
$res = fread($fp, 2000);
$info = stream_get_meta_data($fp);
fclose($fp);
if ($info['timed_out']) {
echo 'Connection timed out!';
} else {
echo $res;
}
}
(來源:http://php.net/manual/en/function.stream-set-timeout.php)
你會如何ADRESS這樣的問題?謝謝!
不知道爲什麼它不會識別換行符 – DBunting 2010-01-13 13:43:16
嗨!超時在這裏不起作用。如果網站不可用,我只能在60秒後達到由PHP.ini設置的總max_execution時間... – Industrial 2010-01-13 14:27:47