如果函数执行超过x秒php

时间:2013-07-23 23:07:20

标签: php time set limit get-headers

在我的脚本中,我使用此功能:

function url_exists($url) {
 if ((strpos($url, "http")) === false) $url = "http://" . $url;
 if (is_array(@get_headers($url)))
      return true;
 else
      return false;
}

如何设置执行函数@get_headers的时间限制?我需要像set_time_limit()这样的函数来处理一个函数,而不是整个脚本。

2 个答案:

答案 0 :(得分:0)

函数get_headers()不支持超时或上下文参数。尝试:

ini_set('default_socket_timeout', YOUR_VALUE_IN_SECONDS);

这会将默认超时设置为您选择的值。操作完成后不要忘记重置超时。

答案 1 :(得分:0)

您可以使用ini setting或为流创建默认上下文值来设置它:

stream_context_set_default(array(
    'http' => array('timeout' => 10) // in seconds
));