欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

$str=preg_replace("/[attach]/is""111"$str); 这一句怎么把111替换成可以执行的PHP代码

程序员文章站 2024-01-10 21:51:22
...
$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码

比如$str=preg_replace("/\[attach\]/is","$str=preg_replace("/[attach]/is""111"$str);  这一句怎么把111替换成可以执行的PHP代码",$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=preg_replace("/[attach]/is""111"$str);  这一句怎么把111替换成可以执行的PHP代码';
},$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);



$str=preg_replace("/[attach]/is""111"$str);  这一句怎么把111替换成可以执行的PHP代码

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频