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