file_get_contents和有效xml的响应时间

时间:2011-11-07 05:25:36

标签: php xml rss-reader

我尝试使用此方法在我的数据库中读取和存储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异常..

2 个答案:

答案 0 :(得分: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创建合并为一行
$xml = new SimpleXMLElement('http://www.forbes.com/news/index.xml',
    LIBXML_NOCDATA, true);

虽然您回绕该行的任何时间将包括HTTP检索解析

答案 1 :(得分:-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>";

感谢。