За последние 24 часа нас посетили 18830 программистов и 1630 роботов. Сейчас ищут 859 программистов ...

нужена програмка парсинга rss. С самим парсингом разобрался?

Тема в разделе "PHP для новичков", создана пользователем pam3ec84, 21 апр 2010.

  1. pam3ec84

    pam3ec84 Активный пользователь

    С нами с:
    21 апр 2010
    Сообщения:
    14
    Симпатии:
    0
    Привет всем. В PHP не разбираюсь. Работаю в основном на Delphi. благодаря этому понял скрипт парсинга.

    Что нужно в программе:
    Нужно что бы был ввод ссылки RSS. Т.е. берётся ссылка и вставляется в пустое окно(В delphi окно называю Edit).
    дальше по этой ссылки парсится сайт указанный в "Edit". и выводит тему новости и саму сылку в новом окне браузера. Если можно сделать чтобы выводились темы в каком-то модуле типа как в delphi - "memo". то будет очень здорово, если нет то окна браузера достаточно.
    После клика по новости должен открываться браузер с этой новостью.
    Мая проблема в том что не могу разобраться как взять значение из "Edit" и вставить в парсинг.

    Код формы прилагаю. "index.html"

    <html>
    <head>
    </head>
    <form name="" action="pars.php" method="post">
    Адрес на RSS:<input name="data[0]" type="text" value=""><br/>
    <input type="submit" name="pars" value="добавить"> <br/>
    </form>
    </body>
    </html>

    код парсинга тоже прилагаю "pars.php" с кодировщиком для русского языка.

    <?php
    function utf8_convert($str, $type)
    {
    static $conv = '';
    if (!is_array($conv))
    {
    $conv = array();
    for ($x=128; $x <= 143; $x++)
    {
    $conv['utf'][] = chr(209) . chr($x);
    $conv['win'][] = chr($x + 112);
    }
    for ($x=144; $x<= 191; $x++)
    {
    $conv['utf'][] = chr(208) . chr($x);
    $conv['win'][] = chr($x + 48);
    }
    $conv['utf'][] = chr(208) . chr(129);
    $conv['win'][] = chr(168);
    $conv['utf'][] = chr(209) . chr(145);
    $conv['win'][] = chr(184);
    }
    if ($type == 'w')
    {
    return str_replace($conv['utf'], $conv['win'], $str);
    }
    elseif ($type == 'u')
    {
    return str_replace($conv['win'], $conv['utf'], $str);
    }
    else
    {
    return $str;
    }
    }

    echo '<h1><font color="red">Конфузы блогосферы</font></h1>';
    $url = 'http://company.yandex.ru/news/news.rss'; //адрес RSS ленты
    $rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
    //цикл для обхода всей RSS ленты
    foreach($rss->channel->item as $item) {
    echo '<a href="'.$item->link.'">';
    echo '<h2>'.utf8_convert($item->title,"w").'</h2>'; //выводим на печать заголовок статьи
    echo '</a>';
    echo utf8_convert($item->link,"w"); //выводим на печать сылку статьи
    }
    ?>

    Спасибо за помощь.