在10秒内运行代码

时间:2014-08-15 16:57:14

标签: php

这是我的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;
}
?>

2 个答案:

答案 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);