gpt4 book ai didi

php - 防止PHP超时

转载 作者:可可西里 更新时间:2023-10-31 23:44:26 25 4
gpt4 key购买 nike

我正在编写一个 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)

您会如何解决这样的问题?谢谢!

最佳答案

我建议使用 cURL PHP函数系列。然后您可以使用 curl_setopt() 设置超时:

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2); // two second timeout

这将导致 curl_exec() 函数在超时后返回 FALSE。

一般来说,使用 cURL 比任何文件读取功能都要好;它更可靠,有更多选择并且不被视为安全威胁。许多系统管理员禁用远程文件读取,因此使用 cURL 将使您的代码更具可移植性和安全性。

关于php - 防止PHP超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com