как я могу сказать 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
,
.
для любого персонажа *
для любого количества «любых символов» и тому ?
говорит остановиться при первом появлении следующего персонажа. В этом случае это двойная кавычка, которая должна сделать это захватить весь атрибут строки src.
Если src может использовать как одинарные, так и двойные кавычки, это следует учитывать (также обратите внимание, что здесь я удалил заключительную цитату из $newlink
).
<?php
$new_link = "http://www.example.com";
echo preg_replace('~src=("|\')cid.*?\1~',"src='$new_link'", '<img src="cid:xx_xxxxxxxx_xxxxxxxxxxxxxxxxxxx" width="544" height="340">');
?>
Других решений пока нет …