php - 如果在 html 文档中找到 'cid:',则将值更改为 src 属性

php - change value to src attribute if 'cid:' are found in html document

如何告诉 php 查看 src 属性是否以 'cid:' 开头,如果是,将其替换为另一个值?

<img src="cid:xx_xxxxxxxx_xxxxxxxxxxxxxxxxxxx" width="544" height="340">

<?php
    $new_link = "http://www.example.com'";
    preg_replace("#^cid:#", $new_link);
?>

^ 用于字符串或行的开头,具体取决于所使用的修饰符。你要

<?php
$new_link = "http://www.example.com'";
echo preg_replace('~src="cid.*?"~',"src='$new_link'", '<img src="cid:xx_xxxxxxxx_xxxxxxxxxxxxxxxxxxx" width="544" height="340">');
?>

输出:

<img src='http://www.example.com'' width="544" height="340">

src 末尾的第二个尾随单引号来自 $newlink.

. 用于任何字符 * 用于任意数量的 "any characters" 并且 ? 表示在下一个字符第一次出现时停止。在这种情况下,这是一个双引号,应该使它捕获整个字符串 src 属性。

如果 src 可以同时使用单引号或双引号,这应该说明这一点(另请注意,我从 $newlink 中删除了尾随引号)。

<?php
$new_link = "http://www.example.com";
echo preg_replace('~src=("|\')cid.*?~',"src='$new_link'", '<img src="cid:xx_xxxxxxxx_xxxxxxxxxxxxxxxxxxx" width="544" height="340">');
?>