在PHP中防止超时

我正在开发一个PHP脚本,它对外部站点进行API调用.但是,如果此站点不可用或请求超时,我希望我的函数返回false.

我找到了以下内容,但我不确定如何在我的脚本上实现它,因为我使用“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)

你会如何解决这个问题?谢谢!

最佳答案
<?php
$fp = fsockopen("www.example.com", 80);

if (!$fp) {
    echo "Unable to open\n";
} else {
    stream_set_timeout($fp, 2); // STREAM RESOURCE, NUMBER OF SECONDS TILL TIMEOUT
    // GET YOUR FILE CONTENTS
}
?>

转载注明原文:在PHP中防止超时 - 代码日志