ホームページ  >  記事  >  バックエンド開発  >  $str=preg_replace("/[attach]/is""111"$str); この文の 111 を実行可能な PHP コードに置き換えるにはどうすればよいですか?

$str=preg_replace("/[attach]/is""111"$str); この文の 111 を実行可能な PHP コードに置き換えるにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-13 12:05:351056ブラウズ

$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);



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。