我有这条线......
preg_replace('/([^\x20-\x7e])/e', '"\\\\\\x" . dechex(ord("${1}"))', $string);
...它正在生成关于使用/ e修饰符使用preg_replace()的警告。
我正在寻找有关如何用替代方案替换此正则表达式的一些提示。
我认为“preg_replace_callback”可以作为替代方案,但在实际实施时需要一些帮助。
我已阅读PHP manual但仍在努力,我的问题是与原版相关的preg_replace_callback替代版本之一。
这有效吗?
function myCallback($matches) {
return '"\\\\\\x" . dechex(ord($matches[1]))';
}
preg_replace_callback('/([^\x20-\x7e])/', 'myCallback', $string);
答案 0 :(得分:2)
您不返回代码,返回要替换的实际值,如下所示:
function myCallback($matches) {
return "\\\\\\x" . dechex(ord($matches[1]));
}