Я делаю preg_match_all
и str_replace
для блока текста, чтобы получить URL-адреса YouTube и заменить их на правильный код для вставки.
Допустим, у меня есть следующий блок текста:
"bla bla bla bla <-youtube-url-> last few words"
Все работает нормально - URL-адрес youtube заменяется на код для встраивания и т. Д. Однако " последние несколько слов " исчезают из окончательного вывода после запуска str_replace.Я подозреваю, что регулярное выражение глотает все после URL ... Это то, что я использую для сопоставления и извлечения идентификаторов YouTube:
%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i
Любая помощь будет принята с благодарностью!
Обновление:
Я только что обнаружил, что проблема возникает, только если в URL-адресе YouTube есть какие-либо конечные параметры.Следующий ввод глотает последние несколько слов :
'www.youtube.com/watch?v=XXXXXXXXX¶meter=data last few words'
Но если ввод такой:
'www.youtube.com/watch?v=XXXXXXXXX last few words'
, он работает нормально.Может кто-нибудь помочь с необходимыми корректировками для регулярного выражения?