我目前正在为客户迁移一个网站。据我所知,他们的旧主机肯定使用的是旧版本的 PHP。该网站目前正在其当前主机上工作。我正在努力将其移至新主机,但出现以下错误:
PHP 严格标准:第 17 行 /home/parcelt2/core/public_html/loader.php 中仅应通过引用传递变量
下面是一段代码,其中第 17 行被标记出来
$uri = parse_url($_SERVER['REQUEST_URI']);
if (substr($uri['path'], -1, 1) == '/' && !sizeof($_POST)) {
$new_uri = substr($uri['path'], 0, -1);
if (strlen($new_uri) > 0) {
$page = reset(explode('/', $new_uri)); //line 17
if (!in_array($page, $exempt_requests)) {
if (isset($uri['query']) && strlen($uri['query']) > 0) {
$new_uri .= '?' . $uri['query'];
}
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $new_uri, true, 301);
exit;
}
}
}
任何人都可以提供解决方案或有关如何解决此问题的一些建议吗?我曾尝试阅读其他有关此错误的帖子,但发现它们很难理解。
谢谢
reset()接受对数组(变量)的引用,因此它不适用于函数调用的结果。
你需要做这样的事情:
$arr = explode('/', $new_uri);
$page = reset($arr);
但是,返回的数组explode()
其内部指针已设置为第一个元素。您根本不需要调用重置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)