我安装了最新的Simplepie代码(1.2.1),我正在使用它们提供的演示代码:
<?php
require 'simplepie.inc';
$url = 'http://news.google.com/news?ned=us&topic=h&output=rss';
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();
// default starting item
$start = 0;
// default number of items to display. 0 = all
$length = 0;
// if single item, set start to item number and length to 1
if(isset($_GET['item']))
{
$start = $_GET['item'];
$length = 1;
}
// set item link to script uri
$link = $_SERVER['REQUEST_URI'];
// loop through items
foreach($feed->get_items($start,$length) as $key=>$item)
{
// set query string to item number
$queryString = '?item=' . $key;
// if we're displaying a single item, set item link to itself and set query string to nothing
if(isset($_GET['item']))
{
$link = $item->get_link();
$queryString = '';
}
// display item title and date
echo '<a href="' . $link . $queryString . '">' . $item->get_title() . '</a>';
echo ' <small>'.$item->get_date().'</small><br>';
// if single item, display content
if(isset($_GET['item']))
{
echo ' <small>'.$item->get_content().'</small><br>';
}
echo '<br>';
}
?>
但是,当我在浏览器中加载页面时,我会说几行:
Deprecated: Assigning the return value of new by reference is deprecated in /home/pliggs/public_html/rss/simplepie.inc on line 7722
任何人都知道什么是错的?
我运行了兼容性测试,它显示所有事情已经过去了。
答案 0 :(得分:2)
这是SimplePie兼容PHP 4的结果,在您的代码中没有任何内容。如果您想停止查看这些错误,请从E_DEPRECATED
error_reporting
error_reporting(E_ALL & ~E_DEPRECATED);
如果您想自己修复错误,可以从GitHub获取SimplePie 1.3-dev(从而降低PHP 4兼容性)的副本,但请记住这是一个开发版本并且不稳定
答案 1 :(得分:2)
您需要在代码中找到“=&amp; new”的每个实例并删除“&amp;”现已弃用。代码中大约有116次出现。它与对象实例化的副本和引用有关。
答案 2 :(得分:0)
我在1.2.1版本中找到的唯一出现的error_reporting是这一行:
if ((ini_get('error_reporting') & $level) > 0)
这是在simplepie.inc
我仍然不确定如何禁用所有这些警告,除了我不喜欢的开发版本,因为我有足够的代码来调试。