@SvizzZzy

Как заменить все img теги в тексте на ссылки (src)?

Например есть строка:
$str='текст текст <img src="123.jpg"> текст <img src="123.jpg">';

Она должна превратиться в: текст текст 123.jpg текст 123.jpg

Попробовал сделать это с помощью такой функции:
function scrapeImage($text) {
$pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
str_replace($pattern, $text, $link);
$link = $link[1];
return $link;
};

Почти получилось, но эта функция удаляет весь текст, оставляя только ссылку из src, а мне нужно чтобы текст остался..
Нужно что то вроде функции strip_tags, только которая будет оставлять ссылки из src="" а не удалять их вместе с тегами.
  • Вопрос задан
  • 586 просмотров
Решения вопроса 1
ProjectSoft
@ProjectSoft
Front-end && Back-end разработчик
spoiler
$text = 'текст текст <img src="123.jpg"> текст <img src="123.jpg" alt="alternative"> текст <img title="Title" src="123.jpg"> текст <img title="Title" src="123.jpg" alt="Alternative Text">';
function replaceImg($matches) 
{
	$text = $matches[1];
	$req = '|src=[\'"](.+)[\'"]|U';
	preg_match($req, $text, $match);
    return $match[1];
}
echo preg_replace_callback("|(<img.+>)|U", "replaceImg", $text);
?>

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ivanq
@Ivanq
Знаю php, js, html, css
function scrapeImage($text) {
$pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
return preg_replace($pattern, '\1', $text, $link);
};

Не путайте str_replace и preg_replace
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы