【问题标题】:Replace src of the image in description替换描述中图片的src
【发布时间】:2013-07-11 13:06:22
【问题描述】:

我有一个来自数据库的字符串,如下所示。我想将下面文本中的 img src 更改为 ./upload-files/<filename> 而不是 ../upload-files/<filename>

<p><span style="text-decoration: line-through;">
<img style="float: left; margin-left: 5px; margin-right: 5px;" src="../upload-files/teddybear.jpg">
</span></p>

所以基本上我希望图像使用当前目录而不是父目录../ 我怎样才能做到这一点? preg_replace 是正确的工具吗?

【问题讨论】:

  • str_replace('src="..', 'src="', $string);
  • 使用正则表达式 preg_replace('/^\.\./', '', $img_url),其中 $img_url 是您的图像路径。如果您的字符串中没有相同的.. 多次,请改用str_replace
  • 描述文本中可能存在不止一次... :(
  • @machineaddict 我尝试了你的方法,但网址仍然带有前面的“../”...
  • 您可能没有正确使用它。在下面检查我的答案。

标签: php preg-replace


【解决方案1】:

如果您使用中间变量来存储图像,您可以使用:

$img_url = '../upload-files/teddybear.jpg';

$img_url = print_r(preg_replace('/^\.\./', '.', $img_url));

<p><span style="text-decoration: line-through;">
<img style="float: left; margin-left: 5px; margin-right: 5px;" src="<?php echo $img_url;?>">
</span></p>

如果你想在一堆 html 中替换 ../,使用这个:

$my_html = '<p><span style="text-decoration: line-through;">
<img style="float: left; margin-left: 5px; margin-right: 5px;" src="../upload-files/teddybear.jpg">
</span></p>';

print_r(preg_replace('/"\.\./', '".', $my_html));

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 2015-08-11
    • 1970-01-01
    • 2013-06-12
    • 2020-06-18
    • 2011-03-20
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多