C wiki разобрался. Там взять контент можно. А вот с рутрекером проблема. Хочу спарсить трелист группы. Но почему-то пустые массивы изначально в этом месте. Здесь нужны сокеты, которые сэмулируют браузер и регистрацию или можно решить задачу проще.? PHP: <?php ini_set('display_errors', 1); error_reporting(E_ALL); $str = file('http://rutracker.org/forum/viewtopic.php?t=3303660'); print_r($str);// в дампе не отображается треклист просто пустые массивы echo $str[831];// пусто echo $str[927];// пусто ?> Буду рад подсказке. Заранее спасибо.
Он выводит то, что вы его просите. А просите вы его вывести два </div>, а так как вы всё это через браузер смотрите, а в исходник страницы скорее всего не заглянули, вот и кажется вам, что он ничего не выводит. Всё он выводит. Смените номера выводимых строк.
Спасибо большое Johnatan PHP: <?php ini_set('display_errors', 1); error_reporting(E_ALL); $str = file('http://rutracker.org/forum/viewtopic.php?t=3303660'); $i=543; while($i<=1052) { echo strip_tags($str[$i]); echo '<br>'; $i++; } ?> Боюсь показать наивным, но осталось несколько вопросов. 1. Можно ли сразу просматривать содержимое html страницы с помощью скрипта. ( сейчас приходится делать это колхозным методом, сохраняя страницу на компе при помоще меню браузера 'сохранить' и затем ее открытие блокнотом или текстовым реадктором уже с винча.) 2. В треклист в разных местах попала вот эта бяка &#=41;. вместо закрывающей скобки. С помощью str_replace избавляться или можно это предусмотреть заранее.
PHP: $str = file('http://rutracker.org/forum/viewtopic.php?t=3303660'); echo "<pre>"; print_r(array_map("htmlspecialchars", $str)); echo "</pre>";
Кстати вот второй решение задачи более логичное. PHP: <?php ini_set('display_errors', 1); error_reporting(E_ALL); $str = file_get_contents('http://rutracker.org/forum/viewtopic.php?t=3303660'); $poisk='/<div class=\"sp-wrap\">.+<\/div>\s<\/div>\s<\/div>/si'; preg_match($poisk,$str,$match); echo strip_tags($match[0],'<br />'); ?> Тут тоже эта бяка &#=41 ((( Вдобавок я не понимаю почему <br /> не остается в тексте. И все сливается в кашу . Помогите разобраться !! (((((((((9
Вот более корректное отображение. Единственное , что осталось сделать отступы. По-моему можно задать это дивом, я его как раз оставил . Может напомните как это вынести кодом ?? без css просто вначале такой -то див, такие то параметры PHP: <?php ini_set('display_errors', 1); error_reporting(E_ALL); $str = file_get_contents('http://rutracker.org/forum/viewtopic.php?t=3303660'); $poisk='/<div class=\"sp-wrap\">.+<\/div>\s<\/div>\s<\/div>/si'; preg_match($poisk,$str,$match); echo strip_tags($match[0],'<br>,<div>'); ?>
PHP: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Тег DIV</title> <style type="text/css"> .sp-wrap { width: 200px; background: #ccc; padding: 5px; padding-right: 20px; border: solid 1px black; float: left; } .sp-body { width: 200px; background: #ccc; padding: 5px; padding-right: 20px; border: solid 1px black; float: left; } </style> </head> </body> <?php ini_set('display_errors', 1); error_reporting(E_ALL); $str = file_get_contents('http://rutracker.org/forum/viewtopic.php?t=3303660'); $poisk='/<div class=\"sp-wrap\">.+<\/div>\s<\/div>\s<\/div>/si'; preg_match($poisk,$str,$match); echo strip_tags($match[0],'<br>,<div>'); ?> </body> </html> Где-то уже рядом но предстоит еще много чего порезать...
Дружище что ты этим хотел сказать ?? Вот часть этого дампа [541] => <div class="sp-body" title="Vegas'79 (Bootleg&#41; - 1979 (192kbps&#41;"> [542] => <h3 class="sp-title">Vegas'79 (Bootleg&#41; - 1979 (192kbps&#41;</h3> Та бяка никак не преобразовалась ?? и мне почему-то ненагуглить что это за html сущность.. Хттто-нибудь может помочь ??
Дорогой мой коллега Jampire. Твоя немногословность меня убивает. Вот что мне помогло: http://php.su/functions/?htmlspecialchars_decode Вот еще по этой теме http://php.su/functions/?get-html-translation-table короче при переборе массива получаю строку ну а там перед выводом делаю так: Код (Text): $key=htmlspecialchars_decode($key, ENT_NOQUOTES);
ХТМЛ-сущности начинаются со знака & и заканчиваются знаком ; . Вы допустили ошибку, считая, что сущностью является HTML: &#41; Сущностью является HTML: & Чем является #41; нужно смотреть по исходнику страницы.