我有一个php网站 www.test.com。
在本网站的索引页面中,我通过以下php代码更新另一个网站(www.pgh.com)数据库。
$url = "https://pgh.com/test.php?userID=".$userName. "&password=" .$password ;
$response = file_get_contents($url);
但是,现在网站www.pgh.com
已关闭。所以它也影响了我的网站'www.test.com'。
那么如何在此代码中添加一些异常或其他内容,以便在其他网站停止运行时我的网站可以正常工作
答案 0 :(得分:3)
$response = file_get_contents($url);
if(!$response)
{
//Return error
}
来自PHP manual 添加超时:
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
file_get_contents("http://example.com/", 0, $ctx);
file_get_contents失败时返回false。
答案 1 :(得分:1)
您有两种选择:
使用stream_get_context()
为file_get_contents
来电添加超时(手册有很好的示例; timeout
参数here的文档)。这并不完美,因为即使一秒的超时也会在加载页面时引起明显的暂停。
更复杂但更好:使用缓存机制。在单独的脚本中执行file_get_contents
请求,使用cron job(如果您有权访问),可以经常调用(例如每15分钟一次)。将结果写入本地文件,您的实际脚本将读取该文件。