Я столкнулся с проблемой, в то время как строка, которую я извлек из базы данных, выглядит так
$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?
Хотя это и не самое элегантное решение, а со многими другими вы можете использовать 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 и т. Д.).
Правильный способ сделать это, это никогда не держать свой DOM внутри вашего база данных.
Вы можете сохранить что-то вроде ##IMAGE_BASE_PATH##/adbul1.jpg
а при рендеринге страницы в браузере ….
$image = str_replace('##IMAGE_BASE_PATH##','../../images', $string);
<img src="$image" />
(много способов сделать это, выше один из них)
Есть много очень веских причин для этого. Некоторые: