最新赞助活动温馨提示:自愿赞助服务器费用,学生和没有工作的整站资源免费下载!
头像

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

来源:http://erdangjiade.com/topic/79803.html 你好,世界。 2017-10-04 21:03浏览(0)

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



评论0
头像

友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群

1 2