php - 在preg_replace_callback的函数中,preg_match为什么不工作

  显示原文与译文双语对照的内容

我知道在HTML字符串操作中使用它不好,但是有时在PHP环境中不可以用。


preg_replace_callback($pattern, function ($matches) {

 $z = $matches[2];
 preg_match('/src="([^"]*)"/i', $z, $t);

//a lot of string manipulation going on here

 return $t[0].'and'.$matches[2];

}, $content_taken_FROM_HTML);

这里的$matches[1]'src="a.jpg"'

如果我把 $z='src="a.jpg"' 放出来。 但只要我把它当作 $z= $matches[1];,它应该给出相同的字符串,它就不工作了。

怎么搞的? 露西 这怎么能解决?

时间: 作者:

原始字符串中的" 由 转义,可能是由 $matches 中内置的preg_replace_callback() 引起的。

应该有 stripslashes() 我的朋友 !

stripslashes ( )

引用带引号的字符串。

感谢anubhava建议 var_dump($matches) 。 一个很好的调试方法 !

...