【问题标题】:php parse error explodephp解析错误爆炸
【发布时间】:2014-10-17 17:01:09
【问题描述】:

我正在优化我的网站。在本地测试页面,一切都很好。当我上传它并实时访问它时,它突然抛出一个解析错误......但它在本地完美运行,就像我说的那样。

 Parse error: syntax error, unexpected '[', expecting ',' or ';' in /home/theriff/www/frvideos.php on line 25

代码如下:

echo explode('|',$youtube[$i])[2].'<br />'."\r\n";

$youtube[$i] 是这样的一行:

DFHG-LINKYOUTUBE-HJGHJ|french Description|English Description

youtube 链接只有 ID,所以没有“|”符号肯定在其中,并且它是从我自己手动编写的文本文件中读取的,因此我确定该条目。

有谁知道为什么它在本地(EasyPhp Developper)上运行良好,但在远程服务器上却不行?

【问题讨论】:

    标签: php parsing explode


    【解决方案1】:
    $results =  explode('|',$youtube[$i]);
    echo $results[2].'<br />'."\r\n";
    

    PHP 的版本不同,因此“远程服务器”上没有可用的数组链接。

    【讨论】:

    • 是的,是的……它现在可以工作了……谢谢你,我会尽可能地+rep你。你知道为什么它在本地运行,但在远程服务器上却没有?
    • @user3916429 因为 PHP 的版本不同。 @knittl 已链接到 Array dereferencing 上的文档,该文档仅在 php 5.4 中可用。您的生产 [阅读:distant] 服务器正在运行 php 5.3 或更低版本。
    【解决方案2】:

    Old (< 5.4) PHP 版本不能直接取消引用函数返回值数组,你必须将结果临时存储在一个变量中:

    $exploded = explode('|',$youtube[$i]);
    echo $exploded[2].'<br />'."\r\n";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 2013-02-13
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多