2

我有一个让我很困惑的问题。

我有一个在 2 个不同的共享主机上运行的 php 脚本。

在第一个上,一切运行完美。在第二个它输出我一个语法错误并且不起作用。

这是语法错误和给出问题的代码:

Parse error: syntax error, unexpected '[' in /home/click/public_html/extension/include/config.php on line 13

代码:

function pem2der($pem_data) {
return base64_decode(trim(explode('-----', $pem_data)[2]));
}

我似乎找不到问题。任何人都可以给我一些帮助吗?提前致谢

4

2 回答 2

3

这是因为您正在执行数组取消引用,这仅在 PHP 5.4 版中可用。您在本地拥有它,但您的虚拟主机没有。这就是为什么您应该始终确保您的开发环境与您的生产环境相匹配的原因。

于 2013-07-25T00:16:16.200 回答
0

这是因为您正在使用称为数组解引用的东西,这基本上意味着您可以从函数直接返回的数组中访问值。这仅在 php>=5.4 中受支持

要解决您的问题,请执行以下操作:

function pem2der($pem_data) {
    $exploded = explode('-----', $pem_data);
    $retStr = base64_decode(trim($exploded[2]));
    return $retStr;
}
于 2013-07-25T00:56:21.690 回答