0

我有一个 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');

我正在寻找一种方法来获得这个输出:模块/索引/索引/索引

谢谢你 !

4

2 回答 2

1
$output = substr($pattern, 2, -2);
$output = stripcslashes($output);
foreach ($replacement as $key => $value)
    $output = str_replace("(?P<$key>[a-zA-Z]+)", $value, $output);
于 2014-04-07T09:31:58.923 回答
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);
于 2012-08-04T07:12:57.470 回答