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

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

WBOY
WBOYOriginal
2016-06-13 12:05:351054Durchsuche

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

比如$str=preg_replace("/\[attach\]/is","$str=preg_replace(" 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);



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn