&、= などの特殊文字を含む URL 変数を含む XML ファイルがありました。
2 つの質問があります。
A. XML では特殊文字が使用できないため、URL はどのように入力すればよいですか? URL をエンコードしてから XML ファイルに入れる必要がありますか?
B. URL をエンコードして XML ファイルに入れ、php スクリプトで読み取ると仮定します。
$fxml = simplexml_load_file("mylist.xml");
$fxml -> getName();
foreach($fxml->children() as $mylist)
{
$url = $mylist -> url;
$url = urldecode(url);
echo $url;
$feed = curl_init( $url );
curl_setopt($feed, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($feed, CURLOPT_HEADER, 0);
$xml = simplexml_load_string(curl_exec($feed));
curl_close($feed);
//---------------------
//---------------------
}
サンプル XML ファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<feed>
<mylist>
<name>
SISC
</name>
<url>
http://epubs.siam.org/action/showFeed?ui=0&mi=3chvf9&ai=s0&jc=sjnaam&type=etoc&feed=rss
</url>
</mylist>
</feed>
元の & がそのコードに置き換えられているエンコードされた形式の URL を置き換えたことに注意してください。また、urldecode を使用しないようにしましたが、echo $url のみが正しく取得されます。
URL を curl_init($url ) にコピーして一重引用符で囲んで貼り付けると、すべてが機能します。
しかし、URL をエンコードして XML に入れ、デコードして curl_init($url ) に入れると、機能しません。
デコードされた $url (上記参照) をエコーすると、正しい URL リストが表示されます。私は何を間違っていますか?密接に関連する投稿を読みましたが、これを解決できませんでした。