我正在尝试使用file_get_contents来检索浏览器从同一域上的另一个文件接收的输出。 我已经转移到另一台服务器,现在它总是超时。 以下是我正在尝试做的一个示例。
的index.php
<?php
echo file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/sample.php');
?>
sample.php
<?php
echo 'test';
?>
任何想法可能是导致这个问题的原因吗?
修改 我们的服务器管理器提到了一些关于apache没有响应localhost的事情,这可能会响铃吗?
谢谢
答案 0 :(得分:1)
您确定网址确实正确吗?您是否尝试过使用$_SERVER ['HTTP_HOST']
?在运行PHP的计算机上,生成的URL中的主机解析为什么?您的Web服务器(Apache?)是否已设置侦听localhost接口?
答案 1 :(得分:0)
您可以使用fsockopen执行相同的操作,同时可以指定超时
<?php
$fp = fsockopen($_SERVER['SERVER_NAME'], 80, $errno, $errstr, 30/*timeout*/);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /sample.php HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
查看文档以获取更多详细信息