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 に答える