Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP класс для импорта новостей

6.1K
30 октября 2017 года
hrm57
5 / / 29.11.2008
Воспользовался статьей с сайта "PHP класс для импорта новостей" (http://www.codenet.ru/webmast/php/newsimp/#templ).
При попытке использовать этот класс получил следующую ошибку.
=============================================
Fatal error: Call-time pass-by-reference has been removed in C:OpenServerdomainskhamzin.ruprogramsviewsnewsimport.php on line 84
=============================================

Обращение к RSS ленте производилось по примеру класса:
 
Код:
<?php
$news = new News(7200, "rss091", 10);
$news->setmysql("localhost", "root", "", "newsimport");
$news->settemplate("<strong>%PUBDATE%</strong>: <a href="%URL%">%TITLE%:</a>%DESCRIPTION%", "H:m d/m");
print $news->read("https://allsoft.ru/rss_vokrug.xml");
?>
Ошибка произошла на 84 строке класса.
Код:
<?
/* PHP класс для импорта новостей. Поддержка rss091 и ultramode.txt.         */
/* Настраиваемое кеширование. Возможность сохранения кеш файла в таблице     */
/* MySql или во временном файле.                                             */
/*                                                                           */
/*                                                                           */
/* Обработчики входных файлов вынесены в отдельные классы, благодоря чему    */
/* можно легко увеличивать количество поддерживаемых стандартов              */
/*                                                                           */
/* Последняя версия всегда на http://www.codenet.ru/webmast/php/newsimp/     */
/* Пример иcпользования в файле example.php                                  */
/*                                                                           */
/* (c) 2004 Mike                                                             */
/*                                                                           */
/* Вопросы, предложения и исправления через форму обратной связи:            */
/* http://mike.nov.ru/feedback/                                              */
/*                                                                           */



/* Вспомогательный класс для разбора входного файла   */
/*                                                    */
/* Парсер rss091                                      */
/*                                                    */
/* Используется следующим образом:                    */
/*                                                    */
/* $parser=new RSS091Parser(dateformat);              */
/* $result=$parser->Parse(data,template,newscount);   */
/*                                                    */
/* , где:                                             */
/*                                                    */
/* - dateformat - формат даты (как у функции date())  */
/* - data - данные для обработки                      */
/* - выходной шаблон                                  */
/* - количество обрабатываемых новостей               */

class RSS091Parser {

    var $DATA;
    var $template;
    var $xml_parser;
    var $newscount;
    var $dateformat;

    function RSS091Parser($idateformat) {
        $this->dateformat=$idateformat;
        $this->DATA=Array();        
        $this->DATA["count"]=0;
        }

    /* RSS 0.91 XML Handlers */
    function startElement($parser, $name, $attrs) {
        $this->DATA["curtag"]=$name;
        $this->DATA[$name]="";
        }

    function endElement($parser, $name) {
        if ($name=="ITEM" && $this->DATA["count"]<$this->newscount) {
            $t=$this->template;
            if (!empty($this->dateformat)) {
                $ttime=strtotime($this->DATA["PUBDATE"]);
                $this->DATA["PUBDATE"]=date($this->dateformat,$ttime);
                }

            $t=str_replace("%URL%",$this->DATA["LINK"],$t);
            $t=str_replace("%TITLE%",$this->DATA["TITLE"],$t);
            $t=str_replace("%DESCRIPTION%",$this->DATA["DESCRIPTION"],$t);
            $t=str_replace("%PUBDATE%",$this->DATA["PUBDATE"],$t);
            $this->DATA["data"].=$t;
            $this->DATA["count"]++;
            }
        $this->DATA["curtag"]="";
        }

    function characterData($parser, $data) {
        $this->DATA[$this->DATA["curtag"]].=$data;
        }

    function Parse($data,$itemplate,$newscount) {
        $this->template=$itemplate;
        $this->newscount=$newscount;

        $this->xml_parser=xml_parser_create();
        xml_set_object($this->xml_parser, &$this);  -[B] на этой строке ошибка[/B]
        xml_set_element_handler($this->xml_parser, "startElement", "endElement");
        xml_set_character_data_handler($this->xml_parser, "characterData");
        xml_parse($this->xml_parser, $data) or die("Error parsing XML");
        xml_parser_free($this->xml_parser);

        return($this->DATA["data"]);
        }
    };
Помогите разобраться плз, в чем проблема. Не могу понять.
Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог