list.xml
サイトのルートにある名前の XML ファイルがあります。simplexml_load_file()
サイトの各ページにロードしたい。
テンプレートファイルで次のコードを試しました:
if ($level == 1) {
$xml = simplexml_load_file('list.xml');
} else {
$xml = simplexml_load_file('../list.xml');
}
変数 $level = 1 は、ルート レベルのページに設定されます。残りのページはすべて 1 レベルの深さであり、$level は設定されておらず、これらのページには相対パス '../list.xml' を使用する必要があります。
ルート レベルのページにアクセスすると、サイトは正しく読み込まれますが、1 レベル深いページでは次のエラーが返されます。
PHP 警告: simplexml_load_file(): I/O 警告: 外部エンティティ "list.xml" の読み込みに失敗しました
相対パスが正しいことを確認しました。上記のコードの他の組み合わせを試しましたが、何が問題なのかわかりませんでした。これが機能する唯一の方法は、各 Web ページでパスを手動で設定することです。しかし、このままでは維持が難しくなります。
ご協力いただきありがとうございます!!