Ошибка устаревания при попытке использовать библиотеку SimplePie в PHP

Я работаю над приложением новостей, и мне нужно проанализировать текущие новости из RSS (Really Simple Syndication),

Я нашел библиотеку SimplePie для анализа RSS кормить легко.

Прежде всего, я использовал эту библиотеку прямо на сервере с моим php code,

<?php
// Make sure SimplePie is included. You may need to change this to match the location of autoloader.php
// For 1.0-1.2:

#require_once('../simplepie.inc');
// For 1.3+:
require_once('./php/autoloader.php');


// We'll process this feed with all of the default options.
$feed = new SimplePie("https://news.google.com/news/feeds?pz=1&cf=all&ned=us&hl=en&topic=h&num=3&output=rss");

// Set which feed to process.

// Run SimplePie.
$feed->init();

// This makes sure that the content is sent to the browser as text/html and the UTF-8 character set (since we didn't change it).
$feed->handle_content_type();

    foreach ($feed->get_items() as $item):
?>

    <div class="item">
      <h2><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h2>
      <p><?php echo $item->get_description(); ?></p>
      <p><small>Posted on <?php echo $item->get_date('j F Y | g:i a'); ?></small></p>
    </div>

<?php 
        endforeach; 
?>

Но я запускаю этот файл на моем компьютере, я получил следующую ошибку:

Deprecated: Passing parameters to the constructor is no longer supported. Please use set_feed_url(), set_cache_location(), and set_cache_location() directly. in C:\xampp\htdocs\apps\liveibl\php\library\SimplePie.php on line 640

Я думаю, что это произошло из-за версии PHP, но я не думаю, что я могу сделать.

Пожалуйста помоги...

Заранее спасибо.

1 ответ

Решение

Ошибка говорит:

Устарело: передача параметров в конструктор больше не поддерживается. Пожалуйста, используйте set_feed_url(), set_cache_location() и set_cache_location () напрямую

Ошибка вполне понятна. Вы не должны делать это:

$feed = new SimplePie("https://news.google.com/news/feeds?pz=1&cf=all&ned=us&hl=en&topic=h&num=3&output=rss");

(Конструктор - это функция, которая вызывается автоматически при создании экземпляра класса с new оператор, это было ваше замешательство.) Документация говорит это явно:

Ранее можно было передавать URL канала вместе с параметрами кэша непосредственно в конструктор. Это было удалено с 1.3, поскольку это вызвало много путаницы.

Вместо этого вы должны сделать это:

$feed = new SimplePie();

... и использовать соответствующие методы для предоставления параметров. Как следует из названия, set_feed_url () может использоваться для предоставления URL канала.

Другие вопросы по тегам