当前位置: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);



人气教程排行