0

基本上,我想从 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,因为我尝试制作路由系统,以上只是我在插入实际引擎之前测试的示例代码。

4

1 回答 1

0

这会更容易吗?

preg_replace("/news.php\?id=(\d+)/","news/$1","news.php?id=24")
于 2013-09-26T03:51:57.213 回答