$str=preg_replace("/[attach]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
比如$str=preg_replace("/[attach]/is","<img src="<?=$row[pict]?>" width="280"/>",$str); 结果出来后成字符了
------解决方案--------------------
这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。
<?php
//author: default7<default7#zbphp.com
$str = preg_replace_callback("/[attach](d+)[/attach]/isUe",function($attachId = 0){
//todo
$row = $db->query("select * from tb where id=$id ")->row();
return '<img src="'.$row['pic'].'" />';
},$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);
友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群