PHP中curl / file_put_contents / fscoketopen设置超时时间比较小结
程序员文章站
2022-04-08 20:07:12
...
file_put_contents设置超时时间
$opt = array( 'http'=>array( 'method'=>"GET", 'header'=>"Content-Type: text/html; charset=utf-8", 'timeout'=>2 ) ); $context = stream_context_create($opt); file_get_contents("http://www.baidu.com", false, $context);
curl中的超时设置:curl_setopt($ch, CURLOPT_TIMEOUT, 3)
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $data = curl_exec($ch); curl_close($ch);
fscoketopen 超时
function request($host, $uri, $timeout = 3, $port = 80) { $fp = fsockopen ( $host, 80, $errno, $errstr, $timeout ); if (! $fp) { echo "$errstr ($errno)
\n"; exit; } else { $data = ''; stream_set_timeout ( $fp, $timeout ); //# $out = "GET {$uri} HTTP/1.1\r\n"; $out .= "Host: {$host}\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite ( $fp, $out ); while ( ! feof ( $fp ) ) { $data .= fgets ( $fp, 128 ); } fclose ( $fp ); return $data; } } echo request('www.scutephp.com', '/siqi');