[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP регулярные выражения [ replace ]
Norozz
Доброго времени суток,
прошу помочь с двумя кейсами по замене выражений в html коде

1 кейс - замена части html кода в изображении
СЕЙЧАС исходный код выглядит как
<img alt="" src="xxx.com/ooo.jpg?12345">

НУЖНО
<img alt="" src="xxx.com/ooo.jpg">


2 кейс - выделение части html кода с YouTube и заключение фрагмента в свой внутренний тег
СЕЙЧАС исходный код выглядит как
<iframe width="560" height="315" src="https://www.youtube.com/embed/ED96RtfF22E" frameborder="0" allowfullscreen></iframe>

НУЖНО [YT]ED96RtfF22E[/YT]

Буду признателен за помощь!
walerus
Norozz
Свои мысли есть по этому поводу?

1) preg_replace( '~\?.*"~', '"', $text );
Norozz
1
$text = preg_replace('~(?<=<img)(.*?src="[^?]+)(\\?[^"]*?)(?=")~iu', '$1', $text);


2
$text = preg_replace('~<iframe.*?src="https://www.youtube.com/embed/([^"]*?)".*?</iframe&g t;~iu', '[YT]$1[/YT]', $text);
walerus
Norozz фигасе ты закрутил... зачем так сложно то? )

$text = preg_replace( '~\?.*"~', '"', $text ); // 1
$text = preg_replace( '~^.*embed\/(.*)"\s.*$~iUs', '[YT]$1[/YT]', $text ); // 2
Guest
Спасибо за ваши ответы!
Однако по ним я понял, что необходимо уточнить мою ситуацию.

Сейчас использую парсер со следующей логикой (ниже пример для YouTube)
выделение уникального фрагмента (ED96RtfF22E) html кода с YouTube и заключение в свой внутренний тег [YouTube] у себя на сайте

ИСТОЧНИК
<iframe width="560" height="315" src="https://www.youtube.com/embed/ED96RtfF22E" frameborder="0" allowfullscreen></iframe>


ИСПОЛЬЗУЮ
replace|0|#<iframe[^>]*youtube\.com\/embed\/([^"]*)"[^>]*>[^<]*<\/iframe>#|[YouTube]$1[/YouTube]|1|


на базе этой логики и нужно решить эту задачу по замене части html кода в изображении

ИСТОЧНИК: содержит ненужный хвост после .jpg (?12345)
<img alt="" src="xxx.com/ooo.jpg?12345">


НУЖНО: заменить без этого хвоста в окончании
<img alt="" src="xxx.com/ooo.jpg">
выглядеть должно в таком виде, как на примере вверху, где ... места для необходимых регулярных php выражений

replace|0|...|...|1|

walerus
В чем трудности?, вставить между палок?
replace|0|~\?.*"~|"|1|
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.