PHP'file_get_contents'在服务器上不起作用

时间:2013-09-26 09:27:08

标签: php cross-domain

我在Yahoo小型企业托管了website(PHP),在Rackspace托管了application(Java)。

我正在从网站到应用程序进行file_get_contents。在我当地工作得很好。但是当我在服务器中部署它之后尝试相同的操作时却无法正常工作。

在这里,我正在制作以JSON格式发送培训列表的遗产。

PHP部分

  $trainingArrayJson = file_get_contents('http://mywebapplication.com/publicTraining/getTrainingsAsJson/');
 $trainingArray =  json_decode($trainingArrayJson);
      -------
      -----

这不起作用。

如果我这样做

   $trainingArrayJson = file_get_contents('http://localhost:8080/publicTraining/getTrainingsAsJson/');
 $trainingArray =  json_decode($trainingArrayJson);

这很好。

3 个答案:

答案 0 :(得分:4)

您需要允许

allow_url_fopen

在你的php.ini配置文件中。有些主持人因为安全而不允许这样做。

答案 1 :(得分:1)

如果已启用fopen包装,则可以使用此函数将URL用作文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。有关各种包装器具有哪些功能的信息,使用说明以及它们可能提供的任何预定义变量的信息,请参阅支持的协议和包装器。

答案 2 :(得分:0)

检查php.ini文件并确保类似可用,如下所示

是否允许将URL(如http://或ftp://)作为文件处理。 ; http://php.net/allow-url-fopen allow_url_fopen =开启

是否允许include / require打开URL(如http://或ftp://)作为文件。 ; http://php.net/allow-url-include allow_url_include =关