非法字符串偏移'日期'

时间:2016-04-16 13:47:15

标签: php wordpress rss simplexml

我正在尝试将朋友的Wordpress网站升级到最新版本的Wordpress和PHP。 一切正常,除了他在他的主页上使用的滚动新闻自动收报机错误输出“非法字符串偏移'日期'”,并且没有显示新闻。 这是脚本:

<?php
$xmlOption = get_option('xmlFeed');
if (!isset($xmlOption)) {
    $buildURL = "https://wordpress.org/news/feed/";
    $request  = curl_init();
    curl_setopt($request, CURLOPT_URL, $buildURL);
    curl_setopt($request, CURLOPT_HEADER, false);
    curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($request);
    curl_close($request);
    $xml     = new SimpleXMLElement($result);
    $channel = $xml->channel;
    delete_option('xmlFeed');
    $otion = array(
        'xml' => $channel,
        'date' => date('y-m-d')
    );
    add_option('xmlFeed', $option);
}
if ($xmlOption['date'] == date('y-m-d')) {
    $channel = $xmlOption['xml'];
} else {
    $buildURL = "https://wordpress.org/news/feed/";
    $request  = curl_init();
    curl_setopt($request, CURLOPT_URL, $buildURL);
    curl_setopt($request, CURLOPT_HEADER, false);
    curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($request);
    curl_close($request);
    $xml     = new SimpleXMLElement($result);
    $channel = $xml->channel;
    delete_option('xmlFeed');
    $otion = array(
        'xml' => $channel,
        'date' => date('y-m-d')
    );
    add_option('xmlFeed', $option);
}
$i = 0;
while ($i <= 5) {
    echo "<li><a href='" . $channel->item->$i->link . "' target='_blank'>" . $channel->item->$i->title . "</a></li>";
    $i++;
}
?>

我注意到两次使用$ otion,我认为这可能是一个错字。但当我将其更改为$ option时,页面的其余部分未被解析,所以我猜这不是问题。

因为我不是编码员而且我现在把头发拉了2个晚上。 在没有人离开之前,有时间得到一些帮助。 任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

这不是我的问题的真实答案,但我发现another script,通过一些小的改动,完美地运作。所以我很高兴。

<?php $rss = new DOMDocument(); $rss->load('http://wordpress.org/news/feed/'); $feed = array(); foreach ($rss->getElementsByTagName('item') as $node) { $item = array ( 'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, ); array_push($feed, $item); } $limit = 5; for($x=0;$x<$limit;$x++) { $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']); $link = $feed[$x]['link']; echo '<li><a href="'.$link.'" title="'.$title.'" target="_blank">'.$title.'</a></li>'; } ?>

它更小更清洁。 感谢您的帮助@Marcus