$ urlパラメーターを別の.phpファイルとしてsimplexml_load_fileを呼び出そうとしています。このファイルは計算を行い、その後、xmlコードを含む文字列を「エコー」します。
これは次のようになります。
$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に追加できるようにする必要がありますが、それを行う方法はありますか?