Обновить
0
0
doodlez@doodlez

Пользователь

Отправить сообщение
pastusenko@gmail.com
заранее спасибо.
У меня есть вопрос , можете подсказать .
столкнулся с задачей - вывода из xml файла.
стоит использовать свой класс который с помошью строковых функции находит и заносит в массив данные из xml или использовать какой-то готовое решение?

вот класс

abstract class xml
{

protected $num_args;
protected $what_to_select_var;
protected $number_of_echo_news;
protected $variable;
protected $buffer;
protected $xml_path;
protected $counter;
protected $counter_s;
protected $possition_open;
protected $possition_close;


//конструктор вводи путь xml и количество выводов блоков
function __construct($xml_path,$number_of_print_blocks)
{
$this->xml_path = $xml_path;
$this->number_of_echo_news = $number_of_echo_news;
}

//заносим в буфер контент xml файла
function get_xml_file()
{
$this->buffer = file_get_contents($this->xml_path);
}


//достаём аргументы и количество аргументов вводимые в данную функцию (то что хотим вывести)
function what_to_select()
{
$this->num_args = func_num_args();
$this->what_to_select_var = func_get_args();
}

//заносим в матрицу $this->variable уже данные внутри тех тегов которые желаем вывести
function solve_variables()
{
for ($this->counter = 1 ; $this->counter number_of_echo_news ; $this->counter++)
{
for ($this->counter_s = 0 ; $this->counter_s < $this->num_args ; $this->counter_s++)
{
$this->possition_open = stripos($this->buffer,'') + 2 + strlen($this->what_to_select_var[$this->counter_s]);
$this->possition_close = stripos($this->buffer,' what_to_select_var[$this->counter_s].'>');
$this->variable[$this->counter][$this->counter_s] = substr($this->buffer , $this->possition_open , $this->possition_close - $this->possition_open);

$this->buffer = substr($this->buffer , $this->possition_close + strlen($this->what_to_select_var[$this->counter_s]) + 3);
}

}
}
abstract function printing();
}





и дочерний класс для вывода


class print_news extends xml
{
function printing()
{
for ($this->counter = 1 ; $this->counter number_of_echo_news ; $this->counter++)
{//цифры - поля которые желаем вывести
echo $this->variable[$this->counter][0]."\n";
echo $this->variable[$this->counter][1]."\n";
echo $this->variable[$this->counter][2]."\n";
echo $this->variable[$this->counter][3]."\n";


}
}
}


//тело скрипта
$obj = new print_news('./xml/news.xml',"5");
$obj->get_xml_file();
$obj->what_to_select('id','title','date','message');
$obj->solve_variables();
$obj->printing();

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность