0

学校での PHP の課題に問題があります。さまざまな RSS フィードへの一連の URL を含む XML ファイルを読み取る PHP スクリプトを作成する必要があります。DOMDocument を使用して、この XML ファイルから URL を取得し、RSS フィードで新しい DOM を読み込みます。「url」ノード値を $url に割り当て、$url を使用して RSS フィード用の新しい DOM オブジェクトを作成します。

$url = $student->getElementsByTagName("url");
$url = $url->item(0)->nodeValue;


$rss = new DOMDocument();
$rss->load($url);

上記のコードを使用すると、RSS ファイルが読み込まれません。$url をエコーし​​て、リンクが割り当てられていることを確認しました。ただし、実際の URL を load() に入れると、問題なく動作します。$url が load() で機能しないのはなぜですか?

4

1 に答える 1

0

この場合に使用できますsimplexml_load_fileが、これらの操作はすべてコストがかかることを忘れないでください (時間制限、メモリなど..)。

$rssStack = array();
$xml = simplexml_load_file("http://people.rit.edu/cns3946/539/project2/rss_class.xml");
foreach ($xml->student as $student) {
    // need sanitize $url
    $url = trim((string) $student->url);
    // suppress errors, cos some urls return "404 Not Found"
    $rss =@ simplexml_load_file($url);
    $rssStack[] = $rss;
    // also can use 
    // $rss = new DOMDocument();
    // $rss->load($url);
    // $rssStack[] = $rss;
}
print_r($rssStack);

アップデート

$rssStack = array();
$xml = new DOMDocument();
$xml->load("http://people.rit.edu/cns3946/539/project2/rss_class.xml");
foreach ($xml->getElementsByTagName("url") as $url) {
    // you need to sanitize url
    $url = trim($url->nodeValue);
    $rss = new DOMDocument();
    $rss->load($url);
    $rssStack[] = $rss;
    // break;
}
print_r($rssStack);
于 2013-02-02T06:42:22.513 に答える