Я пытаюсь получить 3 элемента из кодов для встраивания YouTube, но иногда эти элементы не в том же порядке, а иногда код для встраивания содержит больше параметров.
Я бы хотел найти способизвлеките идентификатор видео, ширину и длину, чтобы создать интеграцию YouTube для AMP.
Пример встраивания:
<iframe width="560" height="315" src="https://www.youtube.com/embed/bpcNPHqs4ng" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Должен быть преобразован в:
<amp-youtube data-videoid="bpcNPHqs4ng" width="560" height="315"
layout="responsive"></amp-youtube>
Если бы встраивание всегда было одним и тем же, это было бы легко решить, но иногда код встраивания начинается с исходного кода, иногда с ширины, ... Так что в любом порядке, в котором я должен был бы захватить идентификатор, ширину и высоту.
Можно ли сделать это с помощью preg_replace в PHP?
Я попробовал это:
preg_replace('/<iframe width="([0-9]+)" height="([0-9]+)" src="https:\/\/www.youtube.com\/embed\/([A-Za-z0-9]+)" (.*)><\/iframe>/', '<amp-youtube data-videoid="$3" width="$1" height="$2" layout="responsive"></amp-youtube>', $article);
$ статья содержит всю статью, в которой используется встраивание YouTube.
Если DOM-парсер может сделать то же самое, для меня это тоже нормально, но я менее знаком с этим.
Спасибо