<?php
define(feed,'http://www.example.com/feed/');
$xml_feed = file_get_contents(feed);
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser,$xml_feed,$xml_keys,$xml_index);
xml_parser_free($xml_parser);
for($i = 0;!empty($xml_index['TITLE'][$i]);$i++){
if ($counter < 10)
{
echo '<span class="nieuwsfeed">
<a href="'.$xml_keys[$xml_index['LINK'][$i]]['value'].'" target="blank_">' . date('d-m-Y', strtotime($xml_keys[$xml_index['PUBDATE'][$i]]['value'])) . ' ' . substr($xml_keys[$xml_index['TITLE'][$i]]['value'], 0, 45).'</a></span>';
$counter++;
}}
?>
。
$doc = new DOMDocument();
$doc->load('http://feeds.example.com/example');
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
array_push($arrFeeds, $itemRSS);
}
foreach ($arrFeeds as $row)
{
if ($counter2 < 10)
{
?>
Feed停机时会显示此错误。
Warning: DOMDocument::load(http://feeds.example.com/example)
[domdocument.load]: failed to open stream: Connection timed out in
我正在使用此脚本让我的Feed在我的网页中运行,但如果Feed处于离线状态,搜索Feed大约需要30秒直到60秒,是否有人知道我应该如何禁用x后的加载量几秒钟然后只显示一个标准图像,表示Feed目前处于离线状态。
每周约有2/3次XML Feed中有一个是离线的,所以如果你的网页不断加载,那就非常烦人了。
答案 0 :(得分:0)
您可以使用file_get_contents()
并使用流上下文定义超时,如下所述:
Does file_get_contents() have a timeout setting?
从答案中修改代码:
<?php $ctx=stream_context_create(array('http'=> array( 'timeout' => 5 // 5 seconds ) )); echo file_get_contents('http://example.com/',false,$ctx); ?>