preg_replace()如何替换成preg_replace_callback()

justseven82 2014-01-04 08:26:44
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

$upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!eS" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').ucfirst(stripslashes('\\2'))", $string); 


preg_replace()如何替换成preg_replace_callback(),能给出个准确写法吗?

非PHP程序员,临时需要编译一个PHP网页 出现的问题,请大家多多帮助

...全文
620 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flutesing1 2014-06-13
  • 打赏
  • 举报
回复
$pattern = array( '/<!--[^>|\n]*?({.+?})[^<|{|\n]*?-->/', // 替换smarty注释 '/<!--[^<|>|{|\n]*?-->/', // 替换不换行的html注释 '/(href=["|\'])\.\.\/(.*?)(["|\'])/i', // 替换相对链接 '/((?:background|src)\s*=\s*["|\'])(?:\.\/|\.\.\/)?(images\/.*?["|\'])/is', // 在images前加上 $tmp_dir '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is', // 在images前加上 $tmp_dir '/{nocache}(.+?){\/nocache}/ise', //无缓存模块 ); $replace = array( '\1', '', '\1\2\3', '\1' . $tmp_dir . '\2', '\1' . $tmp_dir . '\2', "'{insert name=\"nocache\" ' . '" . $this->_echash . "' . base64_encode('\\1') . '}'", ); return preg_replace($pattern, $replace, $source); 这样的怎么修改成 preg_replace_callback
jiawt117 2014-02-19
  • 打赏
  • 举报
回复
引用 1 楼 qinenqiang123 的回复:
preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S".Smarty::$_UTF8_MODIFIER, function($s){ $upper_string=stripslashes($s[1]).ucfirst(stripslashes($s[2])); }, $string);
楼主,试一下这样行不行,我没测试,不过应该是这个意思,去掉e的验证规则,第二个参数是回调方法,在里面执行要实现的操作
麻烦问一下这句应该怎么改: $out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";
秋天穿秋裤 2014-01-05
  • 打赏
  • 举报
回复
preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S".Smarty::$_UTF8_MODIFIER, function($s){ $upper_string=stripslashes($s[1]).ucfirst(stripslashes($s[2])); }, $string);
楼主,试一下这样行不行,我没测试,不过应该是这个意思,去掉e的验证规则,第二个参数是回调方法,在里面执行要实现的操作

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧