[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение
K|/|P|/|K
Есть регулярка
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 дня парился, а ты меня на нужные мысли навел ))


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.