我知道将它用于HTML字符串操作并不是一件好事,但有时在我使用的PHP环境中没有DOMDocument。
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];
,它应该给出相同的字符串,它就不起作用。
这里发生了什么?这怎么能解决?
答案 0 :(得分:1)
原始字符串中的"
由\
转义,可能是由preg_replace_callback()
$matches
中的内置内容引起的。
我的朋友应该有stripslashes()
!
stripslashes()函数
取消引用带引号的字符串。
感谢anubhava建议var_dump($matches)
。一个很好的调试方法!