file_get_contents在同一个域上执行http请求

时间:2012-02-16 10:05:02

标签: php httpwebrequest php-5.3 file-get-contents

我正在尝试使用file_get_contents来检索浏览器从同一域上的另一个文件接收的输出。 我已经转移到另一台服务器,现在它总是超时。 以下是我正在尝试做的一个示例。

的index.php

<?php
echo file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/sample.php');
?>

sample.php

<?php
echo 'test';
?>

任何想法可能是导致这个问题的原因吗?

修改 我们的服务器管理器提到了一些关于apache没有响应localhost的事情,这可能会响铃吗?

谢谢

2 个答案:

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

查看文档以获取更多详细信息

http://php.net/manual/en/function.fsockopen.php