如何使用Switch Case路由URL动态?

问题描述 投票:0回答:1

我有一些代码:

<?php
switch (REQUESTED_URL) {
    case '/home' :
        require __DIR__ . '/views/Home.php';
        break;
      case '' :
        require __DIR__ . '/views/Home.php';
        break; 
    default:
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo "Internal Server Error (Routes URL Not Found)";
        exit();
        break;
}
?>

如何使用动态URL的switch case功能?例如:/ home / $ 1

php
1个回答
2
投票

你不能。 switch将指定字符串的相等性与值列表进行比较,就像if($string == $excepted_value) {}see documentation for the switch control structure)一样。它不检查字符串是否与正则表达式匹配,因此您无法在switch结构中检查动态URL。

相反,为了支持动态URL(即使用查询参数),尝试使用PHP的内置功能,例如$_GET用于URL查询参数,$_SERVER['REQUEST_URI']用于请求URI,正则表达式用于提取该URI的特定部分。

© www.soinside.com 2019 - 2024. All rights reserved.