12

インターネットでこれに似た質問をいくつか見ましたが、答えはありません。

リモート XML ページのソースを文字列に返したいと考えています。この質問の目的のためのリモート XML ページは次のとおりです。

http://www.test.com/foo.xml

通常の Web ブラウザーでページを表示でき、ソースは XML ドキュメントです。ただし、を使用するfile_get_contents('http://www.test.com/foo.xml')と、対応する URL を含む文字列が返されます。

XML コンポーネントを取得する方法はありますか? file_get_contents を使用するかどうかは気にしません。機能するものだけです。

4

2 に答える 2

15

これを機能させるには、サーバーでallow_url_fopenを設定する必要があります。

そうでない場合は、この関数を代わりに使用できます。

<?php
function curl_get_file_contents($URL)
    {
        $c = curl_init();
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($c, CURLOPT_URL, $URL);
        $contents = curl_exec($c);
        curl_close($c);

        if ($contents) return $contents;
            else return FALSE;
    }
?>

ここから借りました。

于 2009-03-29T20:33:58.177 に答える
14

それは奇妙に思えます。file_get_contents()は、他のサイト(XMLだけでなく)の有効なデータを返しますか?URLは、fopen-wrappersが有効になっている場合(デフォルトでは有効になっている場合)にのみファイル名パラメーターとして使用できます。

取得したXMLは後で処理する予定です。その後、simplexml_load _file()を使用してSimpleXmlに直接ロードできるはずです。

try {
   $xml = simplexml_load_file('http://www.test.com/foo.xml');
   print_r($xml);
} ...

XMLファイルの読み取りにはSimpleXMLを使用することをお勧めします。非常に使いやすいです。

于 2009-03-29T20:33:45.820 に答える