2013-03-08 65 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

相關問題