php preg_替换为包含|,[,]符号的字符串

php preg_替换为包含|,[,]符号的字符串,php,preg-replace,Php,Preg Replace,我对这个简单的代码有问题: $img_oryg = '<igm class="aligncenter" src="(oryginal img source)" alt="some text | some text">'; $replace_with = '<div class="ivcs_holder"><igm class="aligncenter" src="(oryginal img source)" alt="some text | some text" /

我对这个简单的代码有问题:

$img_oryg = '<igm class="aligncenter" src="(oryginal img source)" alt="some text | some text">';
$replace_with = '<div class="ivcs_holder"><igm class="aligncenter" src="(oryginal img source)" alt="some text | some text" /></div>';
$content =  preg_replace("#$img_oryg#s", $replace_with , $contetn );
echo $content;
这当然是一个示例代码,所有内容都在一个循环中进行编码,循环将每个图像和div重叠,也可以像其他东西一样工作。 问题在于|可以添加到图像的alt标记中。若它存在,那个么代码行为异常,结果不正确


有人知道如何处理这样的字符串吗?

只要运行正则表达式模式,就应该可以了。|字符在正则表达式中有特殊的含义,因此这就是为什么它会导致问题。

第umptillionth+1次:不要使用正则表达式来解析HTML。好了,现在我知道了,我不应该使用正则表达式来解析HTML-那么我应该使用什么来获得相同的结果呢?[?@MarcB奇怪的是,一些XML/HTML解析器是使用regexer编写的,或者使用str_替换,结果与评论中提到的人相同:哦,Marc B的回答非常有用,因为现在我会记住,直到死;