$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
$str=preg_replace("/\[attach\]/is","111",$str); 这一句如何把111替换成可以执行的PHP代码
比如$str=preg_replace("/\[attach\]/is","8cb54b149825ec35df16c9eb5bd7a077" width="280"/>",$str); 结果出来后成字符了
------解决方案--------------------
这个是BBCODE的PHP替换。你应该是想实现类似DISCUZ的那种附件BBCODE。
要想回调可以使用 preg_replace_callback。
<br /><?php <br /><br />//author: default7<default7#zbphp.com<br />$str = preg_replace_callback("/\[attach\](\d+)\[\/attach\]/isUe",function($attachId = 0){<br /> //todo <br /> $row = $db->query("select * from tb where id=$id ")->row();<br /> return '<img src="'.$row['pic'].'" />';<br />},$str);<br /><br />
function get($id) {<br /> //$value = 这里是相关操作的代码<br /> return $value;<br />}<br />$str = preg_replace("/\[(attach)\]/ise", "get('$1')", $str);
function get($r) {<br /> //$value = 这里是相关操作的代码<br /> return $value;<br />}<br />$str = preg_replace_callback("/\[(attach)\]/is", "get", $str);