是否有PHP函数来模拟apache mod_rewrite的工作原理?

adr*_*an7 1 php mod-rewrite function

我非常喜欢这里,所以我需要的是一个函数或创建函数的想法,其工作方式与Apache的mod_rewrite非常相似.它应该具有作为param的正则表达式,为mod_rewrite和url写入.应该返回从中提取的参数数组.

以下是它应该如何工作的简短示例:

    function rewrite($regexp, $url){ 
           ....
    }

    $params = rewrite('([^/]+)-([^/]+).html', 'Oval-Shape.html');

    print_r($params);
Run Code Online (Sandbox Code Playgroud)

上面的代码应该打印:

   array(1=>Oval, 2=>Shape)
Run Code Online (Sandbox Code Playgroud)

hak*_*kre 7

是的,RewriteRule使用perl兼容的正则表达式.那就是PHP所做的preg_match().

不同的是,ModRewrite你可以在它前面添加一个!不匹配的东西.

另一件事是,当你添加NC标志时,它们是不区分大小写的.在PHP正则表达式中,这可以通过使用i修饰符来实现.

所以在你开始重新发明轮子之前,为什么不选择那个功能呢?它的工作原理如下:

$url = 'Oval-Shape.html';
$regexp = '([^/]+)-([^/]+).html';
$result = preg_match("({$regexp})i", $url, $params);
print_r($params);
Run Code Online (Sandbox Code Playgroud)

这是输出:

Array
(
    [0] => Oval-Shape.html
    [1] => Oval
    [2] => Shape
)
Run Code Online (Sandbox Code Playgroud)

所以,$params[1]是你知道什么是$1在.htacces等.