Norozz
@Norozz

PHP регулярные выражения [ replace ]?

Доброго времени суток,
прошу помочь с двумя кейсами по замене выражений в 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]

Буду признателен за помощь!
  • Вопрос задан
  • 445 просмотров
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik Куратор тега PHP
Доброй ночи.
Регулярные не нужны тут.
$src="xxx.com/ooo.jpg?12345";
  echo stristr($src, '?', true); // xxx.com/ooo.jpg
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
//case1
$s='<img alt="" src="xxx.com/ooo.jpg?12345">';
$p="/(.*)(\?.*)([\"'].*)/usi";
$r='$1$3';
$s2=preg_replace($p,$r,$s); //<img alt="" src="xxx.com/ooo.jpg">
echo htmlspecialchars($s.' => '.$s2).'<br>';

//case2
$s='<iframe width="560" height="315" src="https://www.youtube.com/embed/ED96RtfF22E" frameborder="0" allowfullscreen></iframe>';
$p="/embed\/+([^\"']+)/usi";
preg_match($p,$s,$s2);
$s2='[YT]'.$s2[1].'[/YT]'; //[YT]ED96RtfF22E[/YT]
echo htmlspecialchars($s.' => '.$s2).'<br>';
Ответ написан
Комментировать
Norozz
@Norozz Автор вопроса
Спасибо за ваши ответы!
Однако по ним я понял, что необходимо уточнить мою ситуацию.

Сейчас использую парсер со следующей логикой (ниже пример для 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|
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы