0

この方法を使用して、RSSフィードを読み取ってデータベースに保存しようとしています。

<?php
    $homepage = file_get_contents('http://www.forbes.com/news/index.xml');
    $xml = simplexml_load_string($homepage,'SimpleXMLElement', LIBXML_NOCDATA);
    echo '<pre>';
    print_r('$xml');
?>

だが:

 1. How can  I check if `$homepage` contains a valid XML file or not?

2. I'm want to know how much time its taken to call if the url is valid XML file 

$homepage = file_get_contents('http://www.forbes.com/news/index.xml');

tryおよびcatch例外を使用します。

4

2 に答える 2

4

このようなものを試してください

$start = microtime(true);
$homepage = file_get_contents('http://www.forbes.com/news/index.xml');
$end = microtime(true);

$duration = $end - $start;

try {
    libxml_use_internal_errors() ;
    $xml = new SimpleXMLElement($homepage, LIBXML_NOCDATA);
} catch (Exception $ex) {
    // error parsing XML
    throw $ex;
}

編集:file_get_contents()を使用して、呼び出しとSimpleXMLElement作成を1行に結合することもできます

$xml = new SimpleXMLElement('http://www.forbes.com/news/index.xml',
    LIBXML_NOCDATA, true);

ただし、その行を折り返すタイミングには、HTTPの取得解析が含まれます。

于 2011-11-07T05:29:33.753 に答える
-1

以下のコードは問題なく動作します。それを試してみてください、

 $homepage = file_get_contents('http://www.forbes.com/news/index.xml');
 $xml = simplexml_load_string($homepage,'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOBLANKS);
 echo  "<pre>";
 print_r($xml);
 echo  "</pre>";

ありがとう。

于 2011-11-07T05:36:22.963 に答える