使用官方例子:
<?php
set_time_limit(0);
$fp = fsockopen("www.t.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /t2.php HTTP/1.1\r\n";
$out .= "Host: www.t.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
var_dump(fgets($fp));
fclose($fp);
}
?>
运行环境:Windows。
运行后输出:boolean false。
多次尝试,一直报错,为什么这代码跑不起来呢?
黄舟2017-04-11 10:31:11
换个地址吧,没这个域名的信息,换成segmentfault.com
就没问题。
<?php
set_time_limit(0);
$fp = fsockopen("www.segmentfault.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /index.html HTTP/1.1\r\n";
$out .= "Host: www.segmentfault.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
var_dump(fgets($fp));
fclose($fp);
}
?>
结果:string(20) "HTTP/1.1 302 Found "
如果不行,要考虑环境问题了。