Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Preg_match возвращает match[0] c пробелами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
taravasya
Отправлено: 11 Апреля, 2014 - 23:49:23
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Здравствуйте камрады! Помогите разобраться.... Делаю проверку на валидность кода:
PHP:
скопировать код в буфер обмена
  1.     $value = '<iframe src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d2667.0525139773754!2d38.027218326585825!3d48.05132379575402!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sru!2s!4v1397237756729" width="600" height="450" frameborder="0" style="border:0"></iframe>'  
  2.     $patterniframe = "/.\\w.+(?:google\\.com.+?|adobe\\.com.+?|videohive\\.net.+?)/U";
  3.     $cleariframe = str_replace(""", "\"", $value);
  4.     $result = preg_match($patterniframe, $cleariframe, $resultiframe);  
  5.     return $resultiframe[0];

$resultiframe[0] возвращает правильную строку, однако с пробелами там, где их не было изначально...
Привожу строки изначальную и возвращённую соответственно:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <iframe src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d2667.0525139773754!2d38.027218326585825!3d48.05132379575402!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sru!2s!4v1397237756729" width="600" height="450" frameborder="0" style="border:0"></iframe>
  2. ********************************************
  3. <iframe src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d2667.0525139773754!2d38.0 27218326585825!3d48.05132379575402!3m2!1i1024!2i76  8!4f13.1!5e0!3m2!1sru!2s!4v1397237756729" width="600" height="450" frameborder="0" style="border:0"></iframe>

В результате из-за разрыва в ссылке, фрейм работает не правильно.
Где может быть "затык"? Уже сломал мозг, в прямом смысле этого слова...

(Отредактировано автором: 11 Апреля, 2014 - 23:50:29)

 
 Top
duhon
Отправлено: 14 Апреля, 2014 - 10:16:30
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Нояб. 2011  


Помог: 5 раз(а)




у меня не воспроизвелись ваши проблемы. (я немного нормализовал запись, что бы глаза не резало)
http://3v4l[dot]org/B0ial#v430
PHP:
скопировать код в буфер обмена
  1. $value = '<iframe src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d2667.0525139773754!2d38.027218326585825!3d48.05132379575402!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sru!2s!4v1397237756729" width="600" height="450" frameborder="0" style="border:0"></iframe>';  
  2. $patterniframe = '/.\w.+(?:google\.com.+?|adobe\.com.+?|videohive\.net.+?)/U';
  3. $result = preg_match($patterniframe, $value, $resultiframe);  
  4. echo $resultiframe[0];
  5. //<iframe src="https://www.google.com/maps/embed?pb=!1m10!1m8!1m3!1d2667.0525139773754!2d38.027218326585825!3d48.05132379575402!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sru!2s!4v1397237756729" width="600" height="450" frameborder="0" style="border:0"></iframe>
  6.  


что значит, проблема не в регулярках(естественно ведь нету никакого реплейса), а в выводе где вы смотрите.
Например, шаблонизатор видит что передается длинная-неразрывная строка.

P.S. изменил немного ваш код, потому что он не валидный. Улыбка
P.S.S. слейте var_dump в файл непосредственно той функции которая делает ретурн, и покажите с помощью каких спецсимволов появляются пробелы (\n;\r\n; <br>)

(Отредактировано автором: 14 Апреля, 2014 - 10:23:01)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB