2013-03-08 62 views
0

我想调用simplexml_load_file与$ url参数是另一个.php文件,然后将进行一些计算,然后,它将“回声”包含xml代码的字符串。simplexml_load_file和未能加载外部实体

它看起来是这样的:

$urlrequest= $_SERVER['DOCUMENT_ROOT']."/generateXML.php?id=5&output=xml"; 
$xml = simplexml_load_file($urlrequest); 

其中generateXML.php将是这样的:

<?php 

//do some random code 

$aux= '<?xml version="1.0" encoding="UTF-8" ?>'; 
$aux.= "<item>"; 
$aux.= "<name>John</name>"; 
$aux.= "<location>somewhere</location>"; 
$aux.= "</item>"; 

echo $aux; 
?> 

的问题是,如果generateXML.php位于远程IP它会工作好,但是当文件位于同一台服务器上时,我得到“未能加载外部实体”的错误。

我发现问题可能来自url中的参数。 例如:

$ var1 = file('dosomething.php');正常工作

但是$ var1 = file('dosomething.php?id = 1');返回“未能打开流”错误

我需要能够将这些参数添加到URL,有没有办法做到这一点?

+0

看看这个http://stackoverflow.com/questions/3488425/php-ini-file-get-contents-external-url – Pitchinnate 2013-03-08 14:43:13

+0

XML的标头在哪里? – 2013-03-08 14:43:35

回答

1

它看起来不像allow-url-fopen,因为你说它在远程服务器上工作正常。
您打电话访问您的本地服务器的URL是什么?也许尽量避免使用像http://localhost/something.php这样的名字,并且只使用http://127.0.0.1/something.php这样的IP地址。

+0

正如你所说,allow-url-fopen不能成为问题,因为问题在调用外部IP时不会出现,并且我已经在php.ini中检查它是否为ON – EVL 2013-03-08 15:03:21

相关问题