2016-04-16 15 views
0

私は友人のWordpressサイトをWordpressとPHPの最新バージョンにアップグレードしようとしています。 彼は彼のホームページで "不正な文字列オフセット '日付'"を使用してニュースを表示しないスクロールするニュースティッカーを除いて、すべて正常に動作しています。 これはスクリプトです:不正な文字列オフセット 'date'

<?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の使用を2回、気づきました。しかし、私はそれを$ optionsに変更したとき、残りのページは解析されなかったので、それは問題ではないと思います。

私はコーダーではないので、私は今2泊分の髪を引っ張った。 私は何も残さないうちに助けを受ける時間。 誰もがこれを手伝うことができますか?

+0

私の最初の推測は、 '$ otion' *はタイプミスで、' $ option'(ページが停止しているにもかかわらず)です。 'add_option( 'xmlFeed'、$ option);'誤字を修正しなければならないので、エラーログを確認してください。エラーが吐き出されているのを見てください。 – Marcus

+0

だから、私の腸は$ otionについて正しい。私はコードを変更し、ログで見つけられるエラーは次のとおりです: '' PHP致命的なエラー:キャッチされない例外 ''メッセージ付き例外 '' SimpleXMLElement 'のシリアライゼーションは許可されていません。 私はその間にGoogleに問い合わせます – Jan

+0

"*私はその間にGoogleにお答えします*"なぜGoogleの最初の5つの結果が通常あなたをStackOverflowに戻すのか迷っているのですか?ちょうどここに検索ツールを使用;)あなたに往復を保存します。 – Marcus

答えて

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

関連する問題