最近都快转行搞开发了- -
用到PHPmailer,正文中插入图片用
$mail-> AddEmbeddedImage($matches[1][0],"img_01 ","index_01.jpg ");
来调用,但是在邮件中显示的时候必须要<img src="cid:img_01">这么引用一下,这里的cid是img_0,为了能按照看图说话的样式来发送邮件,所以得把web应用中POST过来的img标签给替换成<img src="cid:img_01">这样的格式再发送。
<?
$a= '<p>1111111111111111111111111111111111111111111111</p>
<p><img width="640" height="360" src="/hixy7/image/blog2.JPG" alt="" /></p>
<p>2222222222222222222222222222222222222222222222222</p>
<p><img width="220" height="216" src="/hixy7/2_59608414_diary.gif" alt="" /></p>
<p>333333333333333333333333333333333333333333333333333333</p>
<p><img width="634" height="354" src="/hixy7/image/bai_music.jpg" alt="" /></p>
<p>44444444444444444444444444444444444444444444444</p>
<p><img width="824" height="500" src="/hixy7/image/blog_music.JPG" alt="" /></p>
<p>5555555555555555555555555555555555555555555555555555555555555555555555</p>
<p><img width="640" height="360" src="/hixy7/image/aaa.JPG" alt="" /></p>';
preg_match_all('/<img.+src=\"?(.+\.(jpg|gif|bmp|png))\".+\"?\/>/i',$a,$matches);
//var_dump($matches);
$replacements[0] = "img src=\"cid:img_01\"";
$replacements[1] = "img src=\"cid:img_02\"";
$replacements[2] = "img src=\"cid:img_03\"";
$replacements[3] = "img src=\"cid:img_04\"";
$replacements[4] = "img src=\"cid:img_05\"";
var_dump((preg_replace($matches[0],$replacements,$a)));
?>
这里偷了个懒,利用preg_replace的一个特点把<>补全了……
批量替换<img>标签为PHPmailer显示格式
建议继续学习
- 一款不错的php邮件发送程序 (累计阅读 4,846)
- 解决PHPMailer邮件标题中文乱码 (累计阅读 3,545)
- 让phpmailer支持中文名称的附件和邮件标题中文乱码 (累计阅读 3,484)