我有一个uri模式,我想用一些值填充它。 我有这两个变量。
$pattern = "/^(?P<scope>[a-zA-Z]+)\/(?P<node>[a-zA-Z]+)\/(?P<controller>[a-zA-Z]+)\/(?P<action>[a-zA-Z]+)$/";
$replacement = array('scope'=>'Modules', 'node'=>'Index', 'controller'=>'Index', 'action'=>'index');
并且我正在寻找获得此输出的方法:模块/索引/索引/索引
谢谢!
答案 0 :(得分:1)
$output = substr($pattern, 2, -2);
$output = stripcslashes($output);
foreach ($replacement as $key => $value)
$output = str_replace("(?P<$key>[a-zA-Z]+)", $value, $output);
答案 1 :(得分:0)
这可能很有用,取决于你的URI,虽然它使用PHP的str_replace而不是正则表达式...
$oldURI = 'blah/<scope>/<node>/<controller>/<action>/';
$search = array('<scope>','<node>','<controller>','<action>');
$replace = array('Modules','Index','Index','index');
$newURI = str_replace($search, $replace, $oldURI);