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)
是的,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等.