我该如何添加例外?

时间:2010-10-06 16:01:14

标签: php

我有一个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'。

那么如何在此代码中添加一些异常或其他内容,以便在其他网站停止运行时我的网站可以正常工作

2 个答案:

答案 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分钟一次)。将结果写入本地文件,您的实际脚本将读取该文件。