Изменить ссылку IMG src внутри строки PHP

Я столкнулся с проблемой, в то время как строка, которую я извлек из базы данных, выглядит так

$string = 'The person name Abdul <img src="https://web-answers.ru/wp-content/uploads/2019/03/abdul.jpg" alt="abdul"/>.....';

что мне нужно изменить его на

$string = 'The person name Abdul <img src="../../images/abdul.jpg" alt="abdul"/>.....';

Как мне решить это с помощью PHP?

0

Решение

Хотя это и не самое элегантное решение, а со многими другими вы можете использовать PHP str_replace и сделай что-нибудь подобное.

<?php
$string = 'The person name Abdul <img src="https://web-answers.ru/wp-content/uploads/2019/03/abdul.jpg" alt="abdul"/>.....';
$string = str_replace('src="images/', 'src="../../images/', $string);

echo $string;
?>

Примечание: единственная причина, по которой я добавил src=" часть изображения должна помочь устранить шансы, когда изображение может быть названо неправильно. Вы могли бы вместо этого использовать это.

$string = str_replace('images/', '../../images/', $string);

Я бы рекомендовал не сохранять элементы в базе данных как относительные пути. Сохраните только имена изображений или, что еще лучше, полный URL-адрес изображения и отобразите его. Это более чистое и надежное решение для больших данных (с использованием CDN и т. Д.).

Еще str_replace Вот

5

Другие решения

Правильный способ сделать это, это никогда не держать свой DOM внутри вашего база данных.

Вы можете сохранить что-то вроде ##IMAGE_BASE_PATH##/adbul1.jpg а при рендеринге страницы в браузере ….

$image = str_replace('##IMAGE_BASE_PATH##','../../images', $string);
<img src="$image" />

(много способов сделать это, выше один из них)

Есть много очень веских причин для этого. Некоторые:

  • Повторное использование данных в другом не HTML-контексте невозможно
  • Извлечение данных с присоединением к ним других данных невозможно
  • Вы в конечном итоге с проблемами кодирования, как у вас сейчас
  • Если вы хотите изменить способ размещения вашего сайта, вам нужно обновить каждое поле базы данных, а не только один HTML-шаблон.

https://stackoverflow.com/a/9228734/1172872

0

По вопросам рекламы [email protected]