php爆炸不起作用不合理

时间:2013-01-09 09:17:19

标签: php function path root explode

这是'connect.php'代码:

<?php
  if(!require_once(explode('root',$_SERVER['DOCUMENT_ROOT'])[0].'root/core/function.php')) die('file not found');

在我转移到新服务器

之前,代码完美无缺

现在无论我尝试多少时间仍然显示错误:

[09-Jan-2013 17:05:39] PHP Parse error:  syntax error, unexpected '[' in /home/wwwroot/root/core/connect.php on line 2
[09-Jan-2013 17:10:10] PHP Parse error:  syntax error, unexpected '[' in /home/wwwroot/root/core/connect.php on line 2

我尝试打开一个新的php文件进行测试:

<?php
print_r(explode('root',$_SERVER['DOCUMENT_ROOT']));
?>

结果应该有效!!

Array (
       [0] => /home/public_html/
       [1] => /core/
      )

到底是怎么回事??

4 个答案:

答案 0 :(得分:4)

您在服务器上的PHP版本不支持explode('root',$_SERVER['DOCUMENT_ROOT'])[0]之类的结构。这仅在PHP 5.4中添加

您可以将爆炸结果分配给变量,然后像常规数组一样访问它。

答案 1 :(得分:2)

什么是新的PHP版本?

您可以尝试这样的事情:

$pathToCheck = explode("root",$_SERVER["DOCUMENT_ROOT"]);
if(count($pathToCheck) <= 1 || !require_once($pathToCheck[0]."root/core/function.php"))
    die("file not found");

答案 2 :(得分:1)

它受到4.1等4个php版本的支持 更多信息 http://www.w3schools.com/php/func_string_explode.asp

答案 3 :(得分:0)

试试这个:

$path = explode ('root', $_SERVER['DOCUMENT_ROOT']);
require_once $path[0];