在PHP String中更改IMG src链接

时间:2015-01-23 04:14:30

标签: php string image hyperlink src

我遇到了麻烦,而我从数据库中提取的字符串如下所示

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

我需要将其更改为

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

如何使用PHP解决这个问题?

2 个答案:

答案 0 :(得分:5)

虽然不是最优雅的解决方案,而且还有更多的解决方案,但您可以使用PHP的str_replace并执行此类操作。

<?php
   $string = 'The person name Abdul <img src="images/abdul.jpg" alt="abdul"/>.....';
   $string = str_replace('src="images/', 'src="../../images/', $string);

   echo $string;
?>

注意:我在图像部分前面添加src="的唯一原因是为了帮助消除图像可能被错误命名的可能性。你可以改用它。

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

我建议不要将数据库中的项目保存为相对路径。只保存图像名称,甚至更好地保存图像的完整URL并回显它。对于大数据(使用CDN等)来说,它更清晰,更强大。

More on str_replace here

答案 1 :(得分:0)

正确的方法是永远不要将您的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