我目前正在做的是这样的:
我有一个$path
变量,即后面的所有内容索引.php/(我用 .htaccess 隐藏)直到问号以忽略查询字符串。
然后我用一个switch
with preg_match
该变量的情况下确定它应该调用什么脚本。例如:
switch (true)
{
case preg_match('{products/view/(?P<id>\d+)/?}', $path, $params):
require 'view_product.php';
break;
...
default:
require '404.php';
break;
}
这样我就可以使用访问产品ID$params['id']
并且,如果需要,使用查询字符串进行过滤、分页等。
这种做法有什么问题吗?
你不应该使用switch
像这样。
最好使用数组foreach
like:
$rules = array(
'{products/view/(?P<id>\d+)/?}' => 'view_product.php'
);
$found = false;
foreach ($rules as $pattern => $target) {
if (preg_match($pattenr, $path, $params)) {
require $target;
$found = true;
break;
}
}
if (!$found) {
require '404.php';
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)