file_get_contents如果失败,请使用其他服务器

时间:2017-02-04 06:29:30

标签: php

使用file_get_contents在php函数中使用备份服务器的好方法是什么。

我可以想到这样的事情,不确定它是否能按预期工作。

<?php

$data = file_get_contents("http:/server1.com"); // Lets say this is down (timeout or other error)
if(!$data){
    $data = file_get_contents("http://server1backup.com");
}
//do something with data


?>

也许以某种方式使用try block?从来没有使用过它们......

我还想将file_get_contents超时设置为更短的时间,比如5秒,所以如果它停机,它不会在1台服务器上等待太久。

1 个答案:

答案 0 :(得分:0)

file_get_contents

不会抛出异常,所以try / catch块在这种情况下没用。记住documentaion中的内容(http://php.net/manual/en/function.file-get-contents.php):失败时返回值为FALSE,但有时成功时你可以得到一个假值(使用===运算符)。

更改超时使用

ini_set('default_socket_timeout', 900);

有关ini参数的更多信息:http://php.net/manual/en/filesystem.configuration.php#ini.default-socket-timeout