1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

Парсер анекдотов

Тема в разделе 'PHP', создана пользователем Zlobniy Babko, 2 фев 2012.

  1. TopicStarter Overlay

    Zlobniy Babko aka Spaxy KOKC

    Moderator
    Написал от делать нех, парсер анекдотов с http://anekdotme.ru/luchshie-anekdoti

    Выводит только название категории и анекдоты.

    Может кому нить пригодится :D

    PHP:
    <html>
    <head></head>
    <body>
    <?php
    function browser($url) {
    $url="http://anekdotme.ru/lenta/";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $html curl_exec($ch);
    curl_close($ch);
    return 
    $html;
    }
    preg_match_all('~<h1>(.*?)</h1>~is'browser($url), $data);
    preg_match_all('~<div class="anekdot_text">(.*?)</div>~is'browser($url), $text);
    print 
    implode($data[1]);
    echo 
    "&nbsp;на сегодня:<br /><br />";
    //print implode('<br /><br />*****<br /><br />', $text[1]); //выводит все анекдоты
    print implode('<br /><br />*****<br /><br />'array_slice($text[1], 01)); //выводит первый анекдот, типа анекдот дня)))
    ?>
    </body></html>
    barabula, maxx2205, TAKOY и ещё 1-му нравится это.
  2. Если не трудно, скажи пожалуйста, я поставил к себе на сайт твой парсер, он выдает анекдот, но он в неправильной кодировке (вопросительные знаки вместо бкв). У меня сайт в утф-8, вот когда в мозиле перевожу кодировку страницы в винвоус-1251, анекдот показывается нормально. Что в коде нужно дописать чтобы он отображался у меня на сайте в утф-8? Заранее спасибо.
  3. TopicStarter Overlay

    Zlobniy Babko aka Spaxy KOKC

    Moderator
    <head>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1251">
    </head> в него прописать; если подинклуживаете файл

    или
    $implo=iconv( "utf-8","cp1251", $implo); использовать ИМХо наподобии этого
  4. я извиняюсь, в пхп не силен, вот так выглядит (ту строчку поставил, но не знаю правильно или нет), пробовал оставлять там только утф-8 или цп1251, ничего не помогает(

    PHP:
    <?php
    function browser($url) {
    $url="http://anekdotme.ru/luchshie-anekdoti/";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $html curl_exec($ch);
    curl_close($ch);
    return 
    $html;
    }
    $implo=iconv"utf-8","cp1251"$implo);
    preg_match_all('~<h1>(.*?)</h1>~is'browser($url), $data);
    preg_match_all('~<div class="anekdot_text">(.*?)</div>~is'browser($url), $text);
    print 
    implode($data[1]);
    echo 
    "&nbsp;на сегодня:<br /><br />";
    //print implode('<br /><br />*****<br /><br />', $text[1]); //выводит все анекдоты
    print implode('<br /><br />*****<br /><br />'array_slice($text[1], 01)); //выводит первый анекдот, типа анекдот дня)))
    ?>
    Если не сложно напиши полностью код с той строчкой или скажи под какой строкой ее подставить
    вот сайт
  5. TopicStarter Overlay

    Zlobniy Babko aka Spaxy KOKC

    Moderator
    Для UTF-8...

    2 слова на сегодня переведете сами)))

    PHP:
    <html>
    <head></head>
    <body>
    <?php
    function browser($url) {
    $url="http://anekdotme.ru/luchshie-anekdoti/";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $html curl_exec($ch);
    curl_close($ch);
    return 
    $html;
    }
    preg_match_all('~<h1>(.*?)</h1>~is'browser($url), $data);
    preg_match_all('~<div class="anekdot_text">(.*?)</div>~is'browser($url), $text);
     
    $string join(','$data[1]);
    $string=iconv"windows-1251","utf-8"$string);
    echo 
    $string;
     
    echo 
    "&nbsp;на сегодня:<br /><br />";
    //print implode('<br /><br />*****<br /><br />', $text[1]); //выводит все анекдоты
    //print implode('<br /><br />*****<br /><br />', array_slice($text[1], 0, 1)); //выводит первый анекдот, типа анекдот дня)))
    $string1 join(','array_slice($text[1], 01));
    $string1=iconv"windows-1251","utf-8"$string1);
    echo 
    $string1;
     
    ?>
    </body></html>
  6. TopicStarter Overlay

    Zlobniy Babko aka Spaxy KOKC

    Moderator
  7. А если хидер послать вначале?
    Код:
    <?php
    header('Content-Type: text/html; charset=windows-1251');
    дальше код парсера..
  8. Так сайт в utf-8 какой смысл выдавать кодеровку win-1251 ?
  9. А как к DLE прикрутить?Создал статическую страницу,вставил код как"Исходный текст HTML без фильтрации и изменений",сохранил.Но ничего не выводит кроме
  10. Злобный бабко благодарю, все работает отлично! сосиска, я конечно не спец по скриптам, но в html страничку обычную не получится вставить на прямую этот код, его можно пихнуть (я так и сделал) напрямую index.php ( или template.php, что там на вордпресе ненаю) твоего шаблона (скина) сайта.