например, это алгоритм:
$text = 'some text1 <img src="1.jpg" /> some text2 <img src="2.jpg">';
if($src == '1.jpg')
remove(img tag in $text)
echo htmlspecialchars($text, ENT_QUOTES, "UTF-8")
и результат должен быть:
some text1 some text2 <img src="2.jpg>"
использование preg_replace
напрямую, без условий и preg_match
необходимо.
$text = 'some text1 <img src="1.jpg" /> some text2 <img src="2.jpg">';
echo preg_replace('~(<img.*[\'"]1\.jpg[\'"].*>)~', '', $text); // some text1 some text2 <img src="2.jpg">
Первый ['"]
необходимо, чтобы избежать удаления, например. a1.jpg
файл, второй не является обязательным. Лучше понять, как это работает.
ОБНОВИТЬ
Из-за комментария ниже, здесь обновленная версия с именем переменной:
$file = '1.jpg';
$text = 'some text1 <img src="1.jpg" /> some text2 <img src="2.jpg" />';
echo preg_replace('~<img[^>]+[\'"]' . $file . '[\'"].*?/>~', '', $text);
Использовать str_replace()
функция удалить все 1.jpg
изображений.
$text = 'some text1 <img src="1.jpg" /> some text2 <img src="2.jpg">';
$text2 = str_replace('<img src="1.jpg" />','',$text);
echo $text2; // Will output "some text1 some text2 "
Если вы хотите запустить это в течение нескольких src
значения, например в цикле измените строку 2 на эту:
$filename = 'xyz.jpg'; //set this to current filename that you want to remove from the string
$text2 = str_replace('<img src="' . $filename . '" />','',$text);
Увидеть Руководство по PHP: str_replace для деталей.