Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式,用于去除src标记中带有CID的图像_Php_Regex - Fatal编程技术网

PHP正则表达式,用于去除src标记中带有CID的图像

PHP正则表达式,用于去除src标记中带有CID的图像,php,regex,Php,Regex,我目前正在使用PHP解析电子邮件。我能够保存附加和嵌入的图像;但是,嵌入的图像会受到刺激性的“CID”源的影响,从而导致图像链接中断 我想完全解析这些内容,但保留与实际web地址相关联的图像 换句话说,需要留下来。但是,需要离开 现在,我可以使用strops来找到开始和结束,这将是好的。。。除此之外,某些电子邮件客户端还嵌入了宽度、高度和ID等内容,并且它们随意排列 因此,我需要一个正则表达式来查找的开头,一直到图像标记的结尾 如果不区分大小写,将获得额外点数 谢谢你的帮助 使用preg\u r

我目前正在使用PHP解析电子邮件。我能够保存附加和嵌入的图像;但是,嵌入的图像会受到刺激性的“CID”源的影响,从而导致图像链接中断

我想完全解析这些内容,但保留与实际web地址相关联的图像

换句话说,
需要留下来。但是,
需要离开

现在,我可以使用strops来找到开始和结束,这将是好的。。。除此之外,某些电子邮件客户端还嵌入了宽度、高度和ID等内容,并且它们随意排列

因此,我需要一个正则表达式来查找
的开头,一直到图像标记的结尾

如果不区分大小写,将获得额外点数


谢谢你的帮助

使用
preg\u replace

preg_replace('~<img\b[^>]*src\s*=\s*"cid[^"]*"[^>]*>~i', '', $str);
preg_替换('~]*>i',''$str);

preg_替换('~]*>i',''$str);
i
修饰符有助于进行不区分大小写的匹配

为此任务使用适当的正则表达式,而不是正则表达式

$doc = new DOMDocument;
$doc->loadHTML($html); // load the HTML data

$xp = new DOMXPath($doc);

foreach ($xp->query('//img[contains(@src, "cid")]') as $img) {
   $img->parentNode->removeChild($img);
}

echo $doc->saveHTML();

杰出的成功了!事实上,我说得太快了。进一步测试,并不总是有效的。忘记转义引号,现在就尝试。本打算回来说是的,修复使它工作。谢谢你的帮助!所以,愚蠢的提问时间。然后如何访问更新的HTML?我没有收到任何错误。。。但我还是能看到愚蠢的cid图像。人力资源管理。对我来说没问题。互联网上的大部分人似乎不同意。正则表达式用于模式匹配,不是吗?我只是试着匹配一种模式而已。
$doc = new DOMDocument;
$doc->loadHTML($html); // load the HTML data

$xp = new DOMXPath($doc);

foreach ($xp->query('//img[contains(@src, "cid")]') as $img) {
   $img->parentNode->removeChild($img);
}

echo $doc->saveHTML();