Мне удалось решить мою проблему, поменяв код, так что сначала он преобразует ссылки на YouTube, затем другие URL-адреса и немного его изменяет. Новый код:

аюсь преобразовать ссылки на видео YouTube в iframes, чтобы встроить их на свой веб-сайт, но у меня возникла проблема, так как я уже конвертирую URL-адреса в теги привязки, и это конфликтует с URL-адресом YouTube.

Вот мой код:

$string = 'https://www.google.com and https://www.youtube.com/watch?v=umFQckeDwEE';
$url = '~(\s|^)(https?://.+?)(\s|$)~im';
$string = preg_replace($url, '[url=$0]$0[/url]', $string);
$youtubeURL = '/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i';
$string = preg_replace($youtubeURL, '<iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/$2\" allowfullscreen></iframe>', $string);

Первая строка получает все, что является простым URL, поскольку я использую BBCode, это противоречит другим вещам, таким как[img] тег.$youtubeURL чтобы получить все ссылки на YouTube и превратить их в iframes, но из-за первого преобразования ссылок это вызываетhref быть помещенным вscr=.

Ответы на вопрос(2)

Ваш ответ на вопрос