【发布时间】:2013-12-25 21:15:39
【问题描述】:
我在 PHP 中有一个字符串,它反映了为网站选择的 URL 路由格式——它根据方案中传递的索引/指令动态构建内容。例如,典型的请求格式可能如下所示:
$str = '/something-new/:id/goto/:new_id/full/page/:num/';
我要提取的数据是每个索引的实体名称,前面总是有一个冒号:。但是,我不确定采取的最佳方法 - "splitting" 字符串似乎很麻烦。将这些结果数据放入数组的最简单方法是什么?
$arr = [
[0] => 'id',
[1] => 'new_id',
[2] => 'num'
];
【问题讨论】:
-
使用
explode创建一个数组,array_filter保留以:开头的数组,array_map删除:字符。 -
或者爆炸,然后是一个
foreach循环,它将以:开头的元素复制到结果数组中,同时删除:。 -
preg_match_all当然。 -
我不知道,但我认为
:foo在 SQL 明智的准备语句中用作命名参数,并且不包含在 actual URL 中。不过,这只是一个猜测。