这是我的PHP代码。我希望在10秒内运行它,如果它在10秒内运行,然后打印$content
,否则打印错误消息。此外,如果$content
为null,则打印错误消息,如果不为null,则打印$content
。
<?php
$content=file_get_contents("http://anyurl/test1.php");
if($content=="") {
echo "there is error";
} else {
echo $content;
}
?>
答案 0 :(得分:4)
在上下文中设置超时
$context = stream_context_create(
array(
'http' => array(
'method' => 'GET',
'timeout' => 10, // Number of seconds for timeout
)
)
);
$content = file_get_contents("http://anyurl/test1.php", false, $context);
if(empty($content)) {
echo "there is error";
} else {
echo $content;
}
答案 1 :(得分:0)
default_socket_timeout是ini-setting中的默认超时,即60秒。你可以像这样把它改成它
ini_set('default_socket_timeout', 10);
使用stream_context_create将超时设置为正在使用的HTTP流包装器的HTTP上下文选项的下一种方法:
$content= stream_context_create(array('http'=>
array(
'timeout' => 10, //for 10 secs
)
));
echo file_get_contents('http://anyurl/test1.php', false, $content);