我遇到了这个错误:
注意:未初始化的字符串偏移:第8行在App.php中为-1
第8行是下面的第二行:
$uri = $_SERVER['REQUEST_URI'];
if(!empty($uri) && $uri[-1] === "/"){
header('Location: '. substr($uri, 0, -1));
header('HTTP/1.1 301 Moved Permanently');
exit();
}
如果uri是index.php /
,我只想重定向到index.php我的php版本是7.0.30,此代码应该可以工作(我从php教程中获得了它)
哦,当然,标头位置不起作用,如果我要使用index.php /则不会重定向我。
答案 0 :(得分:2)
从PHP 7.1 开始支持负偏移,如the manual所述。
答案 1 :(得分:1)
您可以使用substr($uri, -1)
在7.1以下的PHP版本中获得相同的结果。
实际上,您甚至可以在下一行使用它!
答案 2 :(得分:0)
PHP 7.0不支持负字符串偏移。
您可以通过
更好地进行检查substr($uri, -1) === "/"
使用php 7.0时
答案 3 :(得分:0)
您可以使用$uri[strlen($uri)-1]
。