Есть код
$url = "youtube.com/watch?v=ТУТ КАКОЙ ТО ТЕКСТ";
С помощью рег.выражения нужно проверить задана ли такая ссылка, вместо "ТУТ КАКОЙ ТО ТЕКСТ" должно быть что угодно, что допускается в ссылке ($url), любой текст или цифры
$url2 = "youtube.com/watch?v=";
preg_match("#^(https?://)?youtube.com/watch\?v=.*$#", $url2);
Данный код почему то выдает true даже на $url2, хотя так не должно быть
Данный код почему то выдает true даже на $url2, хотя так не должно быть
Это происходит из-за минимальности квантификатора *
, который делает дальнейшее совпадение в подстроке не обязательным, даже если совпадение есть. Замените *
на +
, и шаблон будет учитывать подстроку после v=
:
$str = 'youtube.com/watch?v=';
$patt = '~^(?:https?://)?youtube.com/watch\?v=.+$~';
var_dump( (bool) preg_match($patt, $str) );
Результат:
boolean false
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу понять, чего когда голосуешь, не отображается результат?
Есть код который выводит значения только одного элемента (wdo_tab_title):
Нужно подключится к базе данных sqliteВыдает ошибку: