【问题标题】:replace img src value替换 img src 值
【发布时间】:2018-06-05 09:00:07
【问题描述】:

我有这种格式的数据:

<img src="cid:ii_jhzwfy6l0_163c993284ad67a3" width="295" height="65">
<img src="cid:ii_jhzwfy6l0_163c99368434384384a3" width="295" height="65">
this is text with some images

这只是一个字符串。

我想用存储在数组中的实际值替换上述字符串的 src 值,例如:

[attachments] => Array
        (
            [0] => logo.png
            [1] => sample.png
        )

我该怎么做?

【问题讨论】:

  • 所以你有什么尝试?如果只是为问题添加一些上下文,请显示更多代码
  • 那么到目前为止你尝试过什么?
  • 我该怎么做?,通过编程!请向我们展示您已经尝试过的内容。 SO 是一个特定的问题解决网站,而不是你去免费接收代码的地方。
  • @RiggsFolly 我尝试过使用新的 DOMDocument;但对我不起作用
  • 目前我们不知道&lt;img.....&gt; 字符串的存放位置。您是要替换行中的 HTML 或文件中的数据还是什么?更多代码将帮助我们为您提供帮助

标签: php html regex


【解决方案1】:

使用 regx 匹配 src - src\s*=\s*"(.+?)" 来自 img 选项卡。 用 array[0] 和 [1] 替换值数组 ----希望对您有所帮助

【讨论】:

    【解决方案2】:
    $string = '<img src="cid:ii_jhzwfy6l0_xxx63c99676ghf4ad67a3" width="295" height="65">
    <img src="cid:ii_jhzwfy6l0_163c993284ad67a3" width="295" height="65"><img src="cid:ii_jhzwfy6l0_163c99368434384384a3" width="295" height="65">';
    
    $arr = [
        'logo.png', 
        'sample.png', 
        'one.png'
    ];
    
    echo preg_replace_callback('/cid:ii_[^"]+/', function($matches) use (&$arr) {
        return array_shift($arr);
    }, $string);
    

    【讨论】:

    • 这仅适用于给定的示例。如果同一行有多个图像或没有图像的行有多个图像怎么办?
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 2017-01-10
    • 1970-01-01
    • 2014-05-07
    • 2016-06-03
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多