Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组中的正则表达式需要将字符串传递给函数_Php_Arrays_Bbcode - Fatal编程技术网

php数组中的正则表达式需要将字符串传递给函数

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会减去日期中的数字,所

我已经为我的站点创建了自己的bbcode,因此我们可以使用某些代码来引用一些php函数,但现在我遇到了一个问题

我想使用[photos=date,2013-08-21]作为bbcode,然后像这样处理

"/\[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()可能是最好的方法。