在simplexml_load_file上设置超时

Jer*_*uff 5 php timeout try-catch simplexml

我有这个输出rss feed的脚本.我想要做的是让它尝试到达5秒顶部的rss网址,如果它不能,那么我希望它加载服务器上的备份xml文档.这就是我所拥有的,它不起作用:

 <?php

 include '../php/connect.php';
 $metaData = mysql_query("SELECT * FROM `siteinfo`") or die("couln't find table :(");
 $displayData = mysql_fetch_assoc($metaData);
 $url = $displayData['status'];
 $xml = file_get_contents($url);

 stream_set_timeout($xml, 5);

if ($xml == FALSE) {

   $xml = simplexml_load_file('backUpXml.xml');

   foreach ($xml->channel->item as $item) {
      echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">',   substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
   }
}  else {

   $xml = simplexml_load_file($url);

   foreach ($xml->channel->item as $item) {
        echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
   }
}

 ?>
Run Code Online (Sandbox Code Playgroud)

我有一个超时错误,就是这样.任何见解都会很棒!

Jer*_*uff 0

这就是我的工作:

    <?php

     include 'php/connect.php' ;
     $metaData = mysql_query("SELECT * FROM `siteinfo`") or die("couln't find table :(");
     $displayData = mysql_fetch_assoc($metaData);
     $url = $displayData['status'];
     $xml = file_get_contents($url);

   if (!$xml) {

       $xml = simplexml_load_file('content/backUpXml.xml');

       foreach ($xml->channel->item as $item) {
          echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">',   substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
       }
    }  else {

       $myFile = "content/backUpXml.xml";
       $fh = fopen($myFile, 'w') or die("can't open file");
       $stringData = $xml;
       fwrite($fh, $stringData);
       fclose($fh);

       $xml = simplexml_load_file($url);



       foreach ($xml->channel->item as $item) {
            echo '<a href="'.$item->guid.'" alt="'.$item->title.'" target="_blank">', substr($item->title, 0, 62), '...</a><br /><span>', substr($item->pubDate, 4, 18),'</span><br /><hr /><br />';
       }
    }

    ?>
Run Code Online (Sandbox Code Playgroud)