K|/|P|/|K
30.04.2009 - 18:39
Есть регулярка
PHP |
$sait = "http://odds.marathonbet.com/odds-view.phtml?h=0&r0=0"; $file = file_get_contents($sait); if(!$file){ exit("Ошибка доступа к marathonbet.com"); } preg_match_all("#<div class=cap>(.*)</div>#Uis", $file, $a_1); var_dump($a_1); |
Она выводит все соревнования в массив $a_1
Код |
string(66) "Волейбол. Мужчины. Чемпионат Польши. Плей-офф. Финал. До 3-х побед" [22]=> string(66) "Волейбол. Мужчины. Чемпионат Сербии. Плей-офф. Финал. До 3-х побед" [23]=> string(74) "Волейбол. Мужчины. Чемпионат Франции. Плей-офф. 1/2 финала. Ответные матчи" [24]=> string(60) "Гандбол. Мужчины. Лига чемпионов. 1/2 финала. Ответные матчи" [25]=> string(92) "Дартс. Премьер-Лига PDC. 13-й тур. Шеффилд<br><span class=maxcap>Матчи из 14-ти лэгов</span>" [26]=> string(79) "Дартс. Челлендж матч. Шеффилд<br><span class=maxcap>Матчи из 13-ти лэгов</span>" [27]=> string(29) "Конный спорт. Финляндия. Оулу" [28]=> string(44) "Разное. Евровидение 2009. Россия. Победитель" |
Обратите внимание на 25 и 26 элемент массива. Мне нужно обрезать до тега <br>, чтобы эти элементы приняли вид...
Код |
[25]=> string(92) "Дартс. Премьер-Лига PDC. 13-й тур. Шеффилд" [26]=> string(79) "Дартс. Челлендж матч. Шеффилд" |
Всвязи с этим вопрос... Как дописать регулярку чтобы такое получить?
Спустя 2 минуты, 24 секунды (30.04.2009 - 17:41) hara написал(а):
Код |
"#<div class=cap>([^<]*)</div>#Uis" |
это поидее будет до любого тега, проверь
Спустя 5 минут, 25 секунд (30.04.2009 - 17:47) K|/|P|/|K написал(а):
hara, элементы массива просто пропали )))
Спустя 3 минуты, 36 секунд (30.04.2009 - 17:50) hara написал(а):
проверил...
есть как бы массив)
просто редактировал сообщение, может пробовал до редактирования?
UP: пардон, понял в чём косяк, значения с тегами исчезли..
Спустя 5 минут, 18 секунд (30.04.2009 - 17:56) K|/|P|/|K написал(а):
hara, в моем варианте 85 элементов массива всего, твоем 82. Т.е. элементы, у которых после (.*) идет <br> не записываются в массив, записываются только у которых после (.*) идет </div>
Спустя 9 минут, 58 секунд (30.04.2009 - 18:06) hara написал(а):
Код |
"#<div class=cap>(.*)<#Uis" |
Спустя 5 минут, 11 секунд (30.04.2009 - 18:11) K|/|P|/|K написал(а):
Спасибо, работает ))) Но хотелось бы привязаться именно к тегам <br> и </div>. Т.е. чтобы в регулярке было что то типа [<br>|</div>]
Спустя 2 минуты, 25 секунд (30.04.2009 - 18:13) hara написал(а):
ну догадайся уже что там поменять то по смыслу, три буквы добавить
Спустя 9 минут, 40 секунд (30.04.2009 - 18:23) K|/|P|/|K написал(а):
hara, так я по этому и спрашиваю, т.к. догадаться не могу )))
Спустя 27 минут, 36 секунд (30.04.2009 - 18:50) hara написал(а):
Ну так попробуй несколько вариантов 10-20-30..
покажи что пробовал, - не получится, - напишу верный ответ.
Неможет не получится
Спустя 7 минут, 6 секунд (30.04.2009 - 18:57) K|/|P|/|K написал(а):
Сам допер ))) Только тут получается массив из 3 массивов. Первый содержит
Код |
[24]=> string(61) "<div class=cap>Дартс. Премьер-Лига PDC. 13-й тур. Шеффилд<br>" [25]=> string(48) "<div class=cap>Дартс. Челлендж матч. Шеффилд<br>" |
Второй то что надо
Код |
[24]=> string(42) "Дартс. Премьер-Лига PDC. 13-й тур. Шеффилд" [25]=> string(29) "Дартс. Челлендж матч. Шеффилд" |
и третий
Код |
[24]=> string(2) "br" [25]=> string(2) "br" [26]=> |
Код |
preg_match_all("#<div class=cap>(.*)<(/div|br)>#Uis", $file, $a_1); |
Как избавиться от третьего массива, хоть он и не мешает, но все же.. Есть ли возможность это сделать?
Спустя 3 минуты, 2 секунды (30.04.2009 - 19:01) hara написал(а):
Ну вот и скажи зачем было это спрашивать, при раскладе что всё равно, всем лень писать кому то вещи, которые тот может понять, если чуть чуть постарается...
Спустя 2 минуты, 26 секунд (30.04.2009 - 19:03) K|/|P|/|K написал(а):
Цитата (hara @ 30.04.2009 - 20:01) |
Ну вот и скажи зачем было это спрашивать, при раскладе что всё равно, всем лень писать кому то вещи, которые тот может понять, если чуть чуть постарается... |
Потому что я 2 дня парился, а ты меня на нужные мысли навел ))
_____________