Форум → Программирование → PHP для идиотов → правильно выпарсить данные
правильно выпарсить данные
Страницы: ← Предыдущая страница • Следующая страница →
-
1 апреля 2009 г. 13:53, спустя 51 минуту 42 секунды
время потраченное на оптимизацию лучше было бы употребить на секс. полюбомуιιlllιlllι унц-унц -
1 апреля 2009 г. 14:24, спустя 30 минут 52 секунды
phpdude, это не байтоптимизация, а использование средств по назначению, имхоhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
1 апреля 2009 г. 14:35, спустя 11 минут 13 секунд
adw0rd, имхо регулярные выражения и написаны ради таких задач и использовать их - использовать по назначению, но может это имхо конечно)Сапожник без сапог -
1 апреля 2009 г. 14:39, спустя 3 минуты 59 секунд
phpdude, сокеты тоже написаны для работы с сетью. однако ты пропагандируешь именно курл…https://smappi.org/ - платформа по созданию API на все случаи жизни -
1 апреля 2009 г. 17:55, спустя 3 часа 15 минут 31 секунду
adw0rd, а курл именно для работы с хттп + хттпсСапожник без сапог -
1 апреля 2009 г. 18:44, спустя 48 минут 56 секунд
phpdude, так же как и фун-ии для работы со строками предназначены для работы со строками…https://smappi.org/ - платформа по созданию API на все случаи жизни -
1 апреля 2009 г. 18:47, спустя 2 минуты 49 секунд
adw0rd, как и регулярные выражения предназначены для рботы со строками ;)Сапожник без сапог -
1 апреля 2009 г. 18:56, спустя 9 минут 13 секунд
phpdude, вот так же и сокеты предназначены для работы с сетью :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
6 апреля 2009 г. 12:07, спустя 4 дня 17 часов 11 минут
phpdude,header("Content-type: text/html; charset=utf-8");
$content = file_get_contents("http://tv.akado.ru/channels/1_kanal.html?channel=36&time=2009-03-30");
preg_match("#<table class=\"tv-channel-full\">(.*?)</table>#ism",$content,$table);
preg_match_all("#<tr><td class=\"tv-broadcast-time\"><span class=\"tv-time\">(.*?)</span>.*?class=\"tv-blue\">(.*?)</a><p>(.*?)</p>#ism",$table[1],$data,PREG_SET_ORDER);
echo "<pre>";
print_r($data);
твой код не полностью парсит некоторые каналы… допустим
http://tv.akado.ru/channels/muzh-tv.html?channel=36&time=2009-04-06
некоторые программы пропускает. я ошибки не увидел -
6 апреля 2009 г. 14:03, спустя 1 час 55 минут 15 секунд
Pasha, ну я же не разделе готовые решения написал :) найди ошибку ;)Сапожник без сапог -
6 апреля 2009 г. 15:04, спустя 1 час 1 минуту 33 секунды
[2] => Array
(
[0] => <td class="tv-broadcast-time"><span class="tv-time">08:30</span></td><td class="tv-broadcast-name x"><p>Самородки недели</p><p>Лучшие моменты шоу народного творчества</p></td></tr><tr><td class="tv-broadcast-time"><span class="tv-time">09:00</span></td><td class="tv-broadcast-name x"><p>Звёзды зажигают</p><p>Хит-парад достижений знаменитостей</p></td></tr><tr><td class="tv-broadcast-time"><span class="tv-time">09:45</span></td><td class="tv-broadcast-name x"><p>Мультфильм</p></td></tr><tr><td class="tv-broadcast-time"><span class="tv-time">10:15</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/myztv_hit.html" class="tv-blue">Музтв хит</a><p>Самые популярные и горячие хиты - только лидеры мировых и российских чартов!</p>
[1] => 08:30
[2] => Музтв хит
[3] => Самые популярные и горячие хиты - только лидеры мировых и российских чартов!
)
он считывает только первое значение (08:30) … 09:00 не трогает… мне как то нужно отделить получается? -
-
6 апреля 2009 г. 17:53, спустя 2 часа 13 минут 58 секунд
дописалpreg_match_all("#<td class=\"tv-broadcast-time\"><span class=\"tv-time\">(.*?)</span>.*?<p>(.*?)</p>|\class=\"tv-blue\">(.*?)</a>\</td>#ism",$table[1],$data,PREG_SET_ORDER);
выдирает только текст из <p></p>[0] => Array
(
[0] => <td class="tv-broadcast-time"><span class="tv-time">06:45</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/nashe.html" class="tv-blue">Наше</a><p>Нон-стоп русской музыки</p>
[1] => 06:45
[2] => Нон-стоп русской музыки
)
[1] => Array
(
[0] => <td class="tv-broadcast-time"><span class="tv-time">07:30</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/interaktiv_chart.html" class="tv-blue">Interактив чарт</a><p>Хит-парад мелодий для мобильных телефонов. Новые, модные, лучшие рингтоны на Муз-ТВ!</p>
[1] => 07:30
[2] => Хит-парад мелодий для мобильных телефонов. Новые, модные, лучшие рингтоны на Муз-ТВ!
)
но бывает что название прячется в <p>…</p> и в class="tv-blue">…</a> -
7 апреля 2009 г. 10:46, спустя 16 часов 52 минуты 32 секунды
это код<?
header("Content-type: text/html; charset=utf-8");
$content = file_get_contents("http://tv.akado.ru/channels/muzh-tv.html?channel=36&time=2009-04-06");
preg_match("#<table class=\"tv-channel-full\">(.*?)</table>#ism",$content,$table);
preg_match_all("#<tr><td class=\"tv-broadcast-time\"><span class=\"tv-time\">(.*?)</span>.*?class=\"tv-blue\">(.*?)<.*?<p>(.*?)</p>#ism",$table[1],$data,PREG_SET_ORDER);
echo "<pre>";
print_r($data);
это пример http://94.31.169.103/tv.phpСапожник без сапог -
7 апреля 2009 г. 12:53, спустя 2 часа 6 минут 50 секунд
phpdude, то есть на оперативку посрать? ну ок…
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!