当前位置:Gxlcms >
PHP教程 >
$str=preg_replace("/[attach]/is""111"$str);这一句怎么把111替换成可以执行的PHP代码
$str=preg_replace("/[attach]/is""111"$str);这一句怎么把111替换成可以执行的PHP代码
时间:2021-07-01 10:21:17
帮助过:4人阅读
$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
比如$str=preg_replace("/\[attach\]/is","

",$str); 结果出来后成字符了
------解决方案--------------------这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。
//author: default7$str = preg_replace_callback("/\[attach\](\d+)\[\/attach\]/isUe",function($attachId = 0){
//todo
$row = $db->query("select * from tb where id=$id ")->row();
return '
';
},$str);
原理如上,具体代码自己测试一下。
------解决方案--------------------function get($id) {
//$value = 这里是相关操作的代码
return $value;
}
$str = preg_replace("/\[(attach)\]/ise", "get('$1')", $str);
也可以
function get($r) {
//$value = 这里是相关操作的代码
return $value;
}
$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);