Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > выдернуть видео с youtube


Автор: supervladislav 25.10.2009, 21:30
скажите неполучается субж испотльзую регулярное выражение 
preg_match_all("/(<object\swidth=\"425\"\sheight=\"344\">)(.*)(<\/object>)/m",$file,$matches);
print_r($matches[0]);
на выходе получаю ноль 
скажите  в чём дело?

Автор: brother79 26.10.2009, 11:44
Цитата(supervladislav @  25.10.2009,  21:30 Найти цитируемый пост)
preg_match_all("/(<object\swidth=\"425\"\sheight=\"344\">)(.*)(<\/object>)/m",$file,$matches);



Не вникал в само выражение, но явные ошибки или предупреждения:

1) ковычку ОЧЕНЬ желательно ставить одинарную, т.к. в твоём случае \s будет не \s, а просто экранированный s
2) символы <> означают что-то , кажется конец и начало слова, но точно не помню, ибо сам не пользую, надо экранировать
3) аналогично п.1, текст типа \/ в регулярке в двойных ковычках воспримется как /, а т.о. будет ошибка всего выражения

Добавлено через 1 минуту и 4 секунды
Как вариант можно двойную кавычку юзать, но тогда надо писать \\s и т.д., чтобы в строке получилось \s, НО ИМХО проще одинарную кавычку юзать

Автор: supervladislav 26.10.2009, 11:55
как вот эти символы <>  экранировать )))одинарной слешем или двойным 
Код

preg_match_all('/<object.*?>(.*?)<\/object>/i',$file,$matches,PREG_SET_ORDER);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)