【发布时间】:2014-08-17 18:56:59
【问题描述】:
我目前正在为客户迁移一个网站。据我所知,他们的旧主机必须使用旧版本的 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;
}
}
}
有人能提供解决方法或一些关于如何解决此问题的建议吗?我已尝试阅读有关此错误的其他 SO 帖子,但发现它们很难理解。
谢谢
【问题讨论】:
-
好的,您遇到了错误。你想让我们怎么做?
-
我想知道
reset在这里做什么。explode创建了一个全新的数组,它的指针位于主要位置 - 指向第一个元素,即。 -
您需要将explode调用的结果存储在一个变量中,然后将该变量传递给reset函数
-
我不知道这里的重置是做什么的。我不是代码的开发者。我只是想把它从旧主机上移走,这就是错误日志中显示的内容。谢谢
-
记得搜索错误信息。这不是一个新问题。