$content = file_get_contents($filename);//字符串
//正则匹配
$ary = array( '/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.root[\'|\"]\]+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.skin[\'|\"]\]+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)doc_article\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_download\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_focus\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_guestbook\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_jobs\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_linkers\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_list\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_mapshow\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_picture\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_poll\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_product\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_video\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)nav_sub\((.*?)\)+(.*?)\?\>/e',
'/\<\/head\>/',
);
//替换参数
$ary2 = array( $tag['path.root'],
$tag['path.skin'],
'func("article","$2")',
'func("download","$2")',
'func("focus","$2")',
'func("guestbook","$2")',
'func("jobs","$2")',
'func("linkers","$2")',
'func("list","$2")',
'func("mapshow","$2")',
'func("picture","$2")',
'func("poll","$2")',
'func("product","$2")',
'func("video","$2")',
'func("nav_sub","$2")',
$style.'</head>',
);
$content = preg_replace($ary, $ary2, $content);
echo $content;
求助怎么将preg_replace替换成preg_replace_callback
//正则匹配
$ary = array( '/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.root[\'|\"]\]+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.skin[\'|\"]\]+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)doc_article\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_download\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_focus\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_guestbook\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_jobs\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_linkers\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_list\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_mapshow\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_picture\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_poll\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_product\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)doc_video\((.*?)\)+(.*?)\?\>/e',
'/\<\?php([^\<\?]*?)nav_sub\((.*?)\)+(.*?)\?\>/e',
'/\<\/head\>/',
);
//替换参数
$ary2 = array( $tag['path.root'],
$tag['path.skin'],
'func("article","$2")',
'func("download","$2")',
'func("focus","$2")',
'func("guestbook","$2")',
'func("jobs","$2")',
'func("linkers","$2")',
'func("list","$2")',
'func("mapshow","$2")',
'func("picture","$2")',
'func("poll","$2")',
'func("product","$2")',
'func("video","$2")',
'func("nav_sub","$2")',
$style.'</head>',
);
$content = preg_replace($ary, $ary2, $content);
echo $content;
求助怎么将preg_replace替换成preg_replace_callback
解决方案 »
- php 递归查找父类
- 求助php socket编程问题
- 请问有没有很简单的留言本等等很简单的源代码,主要是学习PHP操作数据库
- 今天又在幼稚环节载跟斗了...
- fckeditor2.5编辑器编辑的内容会多出换行符号,谁能帮我处理一下
- 正册表达式 请教
- |zyciis| 项目做完半年了都收不到钱就这个问题求救:Paypal支付提交送货地址 (有完整示例代码) 谢谢
- 求一个写法
- php的mail函数给某些email提供商的邮箱发邮件,接收不到
- 150分求 得到客户端(包括私有IP客户端)MAC地址的PHP代码,急!
- TP3.23,->uploadOne和->create()运行提示错误,但执行结果
- 求思路,字符串拆分、入库、更改
//正则匹配
$ary = array(
'/\<\?php([^\<\?]*?)doc_([a-z]+)\((.*?)\)+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)(nav_sub)\((.*?)\)+(.*?)\?\>/',
);$content = preg_replace_callback($ary, function($matches){
//$matches[2] 就是 article, download, nav_sub ....
//$matches[3] 就是 之前的 $2
return func($matches[2],$matches[3]);
}, $content);
//不使用函数 fun 的单独替换
$aryFind = array( '/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.root[\'|\"]\]+(.*?)\?\>/',
'/\<\?php([^\<\?]*?)echo(\s*)\$tag\[[\'|\"]path.skin[\'|\"]\]+(.*?)\?\>/',
'/\<\/head\>/',
);
$aryReplace = array( $tag['path.root'],
$tag['path.skin'],
$style.'</head>',
);
$content = preg_replace($aryFind, $aryReplace, $content);echo $content;