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 :: Ничего не понимаю

 PHP.SU

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


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

> Без описания
Хенаро
Отправлено: 03 Июня, 2015 - 23:30:23
Post Id



Гость


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


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




Скажите, почему совпадение находит?
PHP:
скопировать код в буфер обмена
  1. echo preg_match('/\b(https?:\/\/(www\.)?[^y][^o][^u][^t][^u][^b][\S]+)/si', 'https://www.youtube.com/watch?v=hhTeUrJCywQ');


Уже не знаю что и думать и как быть, тут совпадения нет и всё рабно оборачивает в тэг а
PHP:
скопировать код в буфер обмена
  1. function get__code($text){
  2.     $text=htmlspecialchars($text);
  3.     $text=str_replace(
  4.     array("<pre data-rel='php'>",
  5.      "<pre data-rel='javascript'>",
  6.       "<pre data-rel='html'>",
  7.        "<pre data-rel='css'>",
  8.        "<pre data-rel='mysql'>",
  9.         "</pre>"),
  10.          array("<pre data-rel='php'><code>",
  11.           "<pre data-rel='javascript'><code>",
  12.            "<pre data-rel='html'><code>",
  13.             "<pre data-rel='css'><code>",
  14.             "<pre data-rel='php'><code>",
  15.             "</code></pre>"), $text);
  16.            
  17.            $text = preg_replace('/\b(https?:\/\/(www\.)?(?!yotube)[\S]+)/si', '<a target="_blank" href="$1">$1</a>', $text);
  18.            return $text;
  19. }

(Отредактировано автором: 03 Июня, 2015 - 23:37:57)

 
 Top
Мелкий Супермодератор
Отправлено: 03 Июня, 2015 - 23:39:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Находимся в позиции 0.
(https?:\/\/(www\.) есть, ок. Дальше любой символ кроме y, а там как раз y, не подходит. Идём дальше.
Смещаемся в позицию 1
(https?:\/\/(www\.) нету, ну и фиг с ним. Дальше любой символ кроме y. В позиции 1 это t - очень даже подходит, радостно жрём и идём дальше, не встречая преград.


-----
PostgreSQL DBA
 
 Top
Хенаро
Отправлено: 04 Июня, 2015 - 00:17:15
Post Id



Гость


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


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




Мелкий, подскажи как же верно написать?
Вот здесь всё прекрасно работает, но только если одна ссылка в тексте, поэтому переделываю Не понял
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\bhttp[s]?:\/\/(www\.)?[^y][^o][^u][^t][^u][^b][\S]+/s', $text, $atch);
  2.             if($atch[0]){
  3.                 foreach($atch[0] as $http){
  4.             $text = str_replace($http, "<a target='_blank' href='$http'>$http</a>", $text);
  5.        }
  6.                
  7.             }
  8.             preg_match_all('/\bhttps:\/\/www\.youtube\.com\/(watch\?v=).*\b/s', $text, $match);
  9.             if($match[0]){
  10.        
  11. foreach($match[0] as $val){
  12.        
  13.         $text = str_replace($val, "<br><iframe width='560' height='315' src='$val' frameborder='0' allowfullscreen></iframe><br>", $text);
  14.     }
  15. foreach($match[1] as $val1){
  16.     $text = str_replace($val1, 'embed/', $text);
  17. }

(Отредактировано автором: 04 Июня, 2015 - 00:20:59)

 
 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