php数组中的正则表达式需要将字符串传递给函数
我已经为我的站点创建了自己的bbcode,因此我们可以使用某些代码来引用一些php函数,但现在我遇到了一个问题 我想使用[photos=date,2013-08-21]作为bbcode,然后像这样处理php数组中的正则表达式需要将字符串传递给函数,php,arrays,bbcode,Php,Arrays,Bbcode,我已经为我的站点创建了自己的bbcode,因此我们可以使用某些代码来引用一些php函数,但现在我遇到了一个问题 我想使用[photos=date,2013-08-21]作为bbcode,然后像这样处理 "/\[photos\=(.*?),(.*?)\]/e" => "showPhotos($1,$2)", 这是我们的bbcode规则中的一行 因此,我们应该将showPhotos(日期2013-08-21)传递到函数中 但是,在使用showPhotos函数之前,php会减去日期中的数字,所
"/\[photos\=(.*?),(.*?)\]/e" => "showPhotos($1,$2)",
这是我们的bbcode规则中的一行
因此,我们应该将showPhotos(日期2013-08-21)传递到函数中
但是,在使用showPhotos函数之前,php会减去日期中的数字,所以它会传递showPhotos(日期,1992)
在将其传递到showPhotos函数时,如何强制它保持为字符串?Ah请不要使用
e
修饰符。它现在已经被弃用,您应该使用preg\u replace\u callback()
。它更安全,您可以更好地控制流量。我以前没有使用过这个e-modifier,所以我这里的建议纯粹是猜测。但是如果在数组的值端添加字符串引号会怎么样?我猜它是像eval一样处理的?如果是这样的话,“[photos\=(.*?),(.*?)]/e“=>“showPhotos($1,$2')”就可以了。请注意单引号约为2美元。但是正如HamZa所说,使用preg_replace_callback()可能是最好的方法。