基本上,我想从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,因为我尝试制作路由系统,上面只是我在插入实际引擎之前测试的示例代码。
答案 0 :(得分:0)
这会更容易吗?
preg_replace("/news.php\?id=(\d+)/","news/$1","news.php?id=24")