在端口为8080的网站上使用file_get_contents()时出现空白页

时间:2012-02-06 00:33:22

标签: php html web file-get-contents

当我在我的一个网站上运行以下代码时:

    <?php
    $thing = file_get_contents("http://mywebsite.com:8080/Public");
    echo($thing);
    ?>

返回预期结果,http://mywebsite.com:8080/Public

的内容

但是当我在其他网站(由其他公司托管)上运行它时,它不会显示任何内容。没有错误,也没有http://mywebsite:8080/Public的内容。但是,如果我运行以下代码:

    <?php
    $thing = file_get_contents("http://somerandomwebsite.com");
    echo($thing);
    ?>

它返回somerandomwebsite.com的内容。它是否有理由在其中一个网站上运行而不在另一个网站上运行?为什么只有端口为80时才能获取文件的内容?

2 个答案:

答案 0 :(得分:1)

与您的托管服务提供商核实是否允许PHP发出外部请求。某些共享托管服务提供商禁用了该功能。

答案 1 :(得分:0)

file_get_contents失败,因为它无法检索手头的内容。最有可能的是,简单的防火墙阻止了所有到非80端口的流量。您必须使用端口80来避免这些简单的防火墙。

无法下载资源会让php发出警告。最有可能的是,生产服务器上不显示警告。检查服务器的日志以及display_errorserror_reporting配置。