ФорумПрограммированиеPHP для идиотовРасширения PHP → применение dom в классе (помогите наркоману)

применение dom в классе (помогите наркоману)

  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 5 марта 2008 г. 9:02

    кароче мой мозг кончился ) год не писал ни чо на пхп теперь туплю =)

    Вощем есть класс parser в нем функция типа парсера

    как мне сделать чтоб в ней шло добовление дочерних домов


    $film = $dom->createElement('film');
    $list_of_films->appendChild($film);
    $name = $film->appendChild($dom->createElement('ffffff'));
    $name->appendChild($dom->createTextNode('gfgfg f'));


    кароче типа так


    $dom = new DOMDocument('1.0', 'UTF-8');
    $list_of_films = $dom->createElement('films');
    $dom->appendChild($this->list_of_films);

    $tipoClass-> parsim("Бумер");
    $tipoClass-> parsim("Жопер");



  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 5 марта 2008 г. 11:17, спустя 2 часа 14 минут 7 секунд

    welder, я нифига не понял, давай ещё раз объясняй что хочешь сделать :)
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 5 марта 2008 г. 13:41, спустя 2 часа 24 минуты 3 секунды

    вот код сильно не ржать =)


    <?php


    Class ParserKinopoisk {
    var $NameFilm;
    var $url;

    // Выдёргиваем урлу с описанием кина
    function NameToUrl($NameFilm){
    $this->kino = urlencode($NameFilm);
    $this->info = file_get_contents("http://www.kinopoisk.ru/index.php?kp_query={$this->kino}&x=0&y=0");
    preg_match ("#1.</td><td width=100%><a class=\"all\" href=\"(.*?)\">.*?</a>#si", $this->info,$this->urls);
    $this->url = "http://www.kinopoisk.ru{$this->urls[1]}";
    }

    //парсим страницу с инфой
    function UrlParser(){

    $this->content = file_get_contents($this->url);
    preg_match ("#<H1 style=\"padding:0px;margin:0px\" class=\"moviename-big\">(.*)</H1>#",$this->content, $this->name_kino);
    preg_match ("#<span style=\"font-size:13px;color:\#666\">(.*)</span>#",$this->content, $this->kino_en);
    preg_match ("#src=\"/images/film/(.*).jpg\"#",$this->content, $this->kino_img);
    preg_match ("#<td colspan=3 style=\"padding:10px;padding-left:20px;\" class=\"news\">(.*)</td>#siU",$this->content, $this->kino_info);


    preg_match_all ("#<td height=15 align=right><a href=\".*\" class=\"all\">(.*)</a></td>#iU",$this->content, $this->kino_akters);
    preg_match_all ("#<img src=\"/images/sqr-grey.gif\" width=4 height=4 vspace=1 hspace=7>(.*)</td><td class=\"desc-data\"><a href=\".*\" class=\"all\">(.*)</a>#iU",$this->content, $this->info_data);
    }

    }





    а хочу я генерацию xml dom сначала корень а потом уже прочую рунду

    чтоб типа получилося так

    $tipaClass = new ParserKinopoisk();
    $tipaClass-> NameToUrl("Бумер");
    $tipaClass-> UrlParser();

    $tipaClass-> NameToUrl("жопер");
    $tipaClass-> UrlParser();



    а на выходе получить типа отпарсеное в xml в таком виде


    <?xml version="1.0" encoding="utf-8"?>
    <films>
    <film>
    <название>Достучаться до небес</название>
    <оригинал>Array</оригинал>
    <image>32898</image>
    <год>1997</год>
    <страна>Германия</страна>
    <режиссер>Томас Ян</режиссер>
    <сценарий>Томас Ян</сценарий>
    <продюсер>Вольфган Браун</продюсер>
    <оператор>Джеро Стеффен</оператор>
    <композитор>Кристиан Неандер</композитор>
    <жанр>боевик</жанр>
    <сборы в США>$5 710</сборы в США>
    <премьера (мир)>20 февраля 1997</премьера (мир)>

    <актеры>Тиль Швайгер, Ян Йозеф Лиферс, Тьерри Ван Вервеке, Мориц Бляйбтрой, Хуб Стапель, Леонард Лансинк, Ральф Херфорт, Корнелия Фробе, Рутгер Хауэр, Кристиана Пауль, …,</актеры>
    <описание>
    Судьба сводит героев картины в больнице, где врачи выносят им смертный приговор. Счет времени их жизней идет на часы. Дальнейшие события в фильме разворачиваются в стремительном темпе. Украв машину с миллионом долларов в багажнике, они сбегают из больницы.<br><br>Их преследуют наемные убийцы, они становятся грабителями поневоле, за ними гонится полиция, они попадают в бордель. Но тем не менее продолжают мчаться вперед, навстречу своей Судьбе.
    </описание>
    </film>

    <film>
    <название>Достучаться до небес232321</название>
    <оригинал>Array</оригинал>
    <image>32898</image>
    <год>1997</год>
    <страна>Германия</страна>
    <режиссер>Томас Ян</режиссер>
    <сценарий>Томас Ян</сценарий>
    <продюсер>Вольфган Браун</продюсер>
    <оператор>Джеро Стеффен</оператор>
    <композитор>Кристиан Неандер</композитор>
    <жанр>боевик</жанр>
    <сборы в США>$5 710</сборы в США>
    <премьера (мир)>20 февраля 1997</премьера (мир)>

    <актеры>Тиль Швайгер, Ян Йозеф Лиферс, Тьерри Ван Вервеке, Мориц Бляйбтрой, Хуб Стапель, Леонард Лансинк, Ральф Херфорт, Корнелия Фробе, Рутгер Хауэр, Кристиана Пауль, …,</актеры>
    <описание>
    Судьба сводит героев картины в больнице, где врачи выносят им смертный приговор. Счет времени их жизней идет на часы. Дальнейшие события в фильме разворачиваются в стремительном темпе. Украв машину с миллионом долларов в багажнике, они сбегают из больницы.<br><br>Их преследуют наемные убийцы, они становятся грабителями поневоле, за ними гонится полиция, они попадают в бордель. Но тем не менее продолжают мчаться вперед, навстречу своей Судьбе.
    </описание>
    </film>


    <films>


    ну типа там в xml фильмы те которые просил а не те что в примере

  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 5 марта 2008 г. 14:29, спустя 48 минут 1 секунду

    э… попробуй полученную через file_get_contents строку запихнуть в DOMDocument::loadHTML. Дальше наверное можно через XSLT преобразовать к нужной структуре XML-документа
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 5 марта 2008 г. 14:42, спустя 13 минут 39 секунд

    кароче в топку =) я в ручную создам меньше гимара и быстрей не такая у меня и глобальная задача =)
  • Шуранов

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz 6 марта 2008 г. 7:22, спустя 16 часов 39 минут 36 секунд

    Простите, но разбор HTML кода будет гораздо более правильным на Perl: use HTML::TreeBuilder;
    Для этого ищем книгу "Perl & LWP" Sean M. Burke, найти можно только на английском языке. Делается гораздо быстрее и эффективнее.
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 8 марта 2008 г. 8:50, спустя 2 дня 1 час 27 минут

    мона и на си будет быстрей =) а ещё на асме мона ну или в машиных кадах
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 8 марта 2008 г. 8:52, спустя 1 минуту 57 секунд

    а да прощаю =)
  • Шуранов

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz 10 марта 2008 г. 13:57, спустя 2 дня 4 часа 5 минут


    мона и на си будет быстрей =) а ещё на асме мона ну или в машиных кадах

    Естественно, что быстрее, а разбирать HTML на PHP - это забивать гвозди микроскопом. Ну не предназначен он для этого! А иронизировать можете и дальше, много людей видел, которые в интернет вышли в первый раз. Вели себя точно так же, по-детски.


    а да прощаю =)


    Что только подтверждает вышесказанное.
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 10 марта 2008 г. 16:12, спустя 2 часа 14 минут 52 секунды

    Естественно, что быстрее, а разбирать HTML на PHP - это забивать гвозди микроскопом. Ну не предназначен он для этого!


    кто сказал ? я скрипт написал за 20 минут потом за несколько минут прогнал всю фильмотеку свою и всё мне хватила. иди лучше советуй людям на перл форумах

    А иронизировать можете и дальше, много людей видел, которые в интернет вышли в первый раз. Вели себя точно так же, по-детски.



    Интернет а что это ? да мне 15 годикафф я не знаю перл не знаю пхп и не пишу на с++.

    Что только подтверждает вышесказанное.


    Тебе ни чо что я на Ты ? Вам самому не смешно писать это директору собственной ИТшной компании.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!