echo preg_replace("#\[map\](.+)\[\/map\]#e", '[link=maps.php/".$map_id[array_search("$1", $map_name)]."/$1/]$1[/link]', $text);是我的尝试。
我想替换一下
[map]map_name[/map]至
[link]maps.php/id/map_name[/link]我有两个数组,$map_id和$map_name。它们包含完全相同的项,项目用相同的键连接,例如:$map_id[123],ID是映射:$map_name[123]的ID。
我的preg_replace在返回时不能工作:Failed evaluating code: [link=maps.php/".in_array("ksz_luminous", $map_name)."/ksz_luminous/]ksz_luminous[/link]
发布于 2014-01-08 16:48:47
您不应该使用e标志。假设我使用了这个:
[map]",array())].shell_exec("evil command of evil").$map_id[array_search("[/map]或者类似的东西。
不管怎样,试试这个:
echo preg_replace_callback("(\[map\](.+?)\[/map\])i",
function($m) use ($map_id,$map_name) {
return "[link=maps.php/"
.$map_id[array_search($m[1], $map_name)]
."/".$m[1]."/]".$m[1]."[/link]";
}, $text);https://stackoverflow.com/questions/21001528
复制相似问题