【发布时间】:2016-04-16 13:47:15
【问题描述】:
我正在尝试将朋友的 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 个晚上的头发了。 是时候在我一无所有之前得到一些帮助了。 任何人都可以帮我解决这个问题吗?
【问题讨论】:
-
我最初的猜测是
$otion是一个错字,应该是$option(即使它会停止页面)。否则,以下行将在哪里得到它的$option数组:add_option('xmlFeed', $option);所以修正错字(因为你必须),然后检查你的错误日志/打开错误报告,看看然后吐出什么错误。 -
所以我对 $otion 的直觉是正确的。我更改了代码,我可以在日志中找到的错误是:
'PHP Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed'同时我会在谷歌上搜索 -
"同时我会用谷歌搜索" 既然谷歌的前 5 个结果通常会把你带回 StackOverflow,为什么还要麻烦呢?只需使用此处的搜索工具;)为您节省往返行程。
标签: php wordpress rss simplexml