基本上,我想从 URL 模式映射到另一个 URL 模式。例如:
news.php?id=(\d+) -> news/$1
我设法用一个简单的循环来完成以下工作。
$url = "news.php?id=24";
$pattern = "/news.php\?id=(\d+)/";
$rewrite = "news/$1";
if (preg_match($pattern, $url, $match))
{
for($i = 1; $i < count($match); $i++) {
$rewrite = str_replace("\${$i}", $match[$i], $rewrite);
}
}
var_dump($rewrite);
// output: news/24
我想知道是否有更好的方法或原生 PHP 函数可以做类似的事情?
注意:请不要建议使用 .htaccess,因为我尝试制作路由系统,以上只是我在插入实际引擎之前测试的示例代码。