php索引切换案例问题

时间:2017-09-07 16:03:12

标签: php .htaccess

我的.htaccess删除扩展名(.html)并将字符串提供给index.php,其中我有switch语句。

除非字符串以" index.php /"

开头,否则开关效果很好

即。如果网址是:

example.com/index.php/randomtext

字符串将是:

index.php/randomtext

它将显示我的索引页面没有样式。

那么如果字符串以" index.php /"开头,我将如何实现?显示错误页面?

是否有某种方式:

case "index.php/*":
      include ('error.html');
      break;

1 个答案:

答案 0 :(得分:1)

如果你坚持使用开关盒,我会先检查并使用简单的if / else来检查该值,因为你想要搜索部分字符串。

$error_check = "index.php/randomtext";
$pattern = '/^(index\.php)\/.*?$/';

if( preg_match($pattern, $error_check, $match) ){
    include ('error.html');
}else{
    //switch case here
}

pregmatch需要3个参数。第一个是要搜索的模式,第二个是要搜索的字符串,第三个是返回的匹配数组。

模式中的^将搜索锚定到字符串的开头,$将搜索锚定到字符串的结尾。这意味着您要查找的模式始于字符串的结尾和结束以及字符串的结尾。 ()中的代码是您要搜索的内容。反斜杠是用于逃避期间的转义字符。未转义的期间意味着任何字符,*表示前一个表达式的零或更多,并且?表示前一个表达式的0或1,并且当表达式可以匹配搜索字符串中的多个字符串时强制进行最小匹配。

注意:应该是preg_match,而不是pregmatch