Php imagettfbbox:在测试机中语法正确,而不是在服务器中

Php imagettfbbox:在测试机中语法正确,而不是在服务器中,php,syntax,gd,Php,Syntax,Gd,我在一个小网站上工作,它生成一个覆盖用户文本输入的图像。 我一直在使用XAMPP在本地机器上开发它,但它在公司的服务器上不起作用。我已经检查了GD和Freetype是否都正确安装,并且GD启用了PNG支持 奇怪的是,我得到的错误是: 分析错误:语法错误,第15行/buddy.php中出现意外的“[” 代码如下: <?php header('Content-type: image/png'); ini_set('display_errors', 'On'); if (isset($_GE

我在一个小网站上工作,它生成一个覆盖用户文本输入的图像。 我一直在使用XAMPP在本地机器上开发它,但它在公司的服务器上不起作用。我已经检查了GD和Freetype是否都正确安装,并且GD启用了PNG支持

奇怪的是,我得到的错误是: 分析错误:语法错误,第15行/buddy.php中出现意外的“[”

代码如下:

<?php 
header('Content-type: image/png');
ini_set('display_errors', 'On');

if (isset($_GET['dataval']))
{
    $myText = $_GET['dataval'];
    $im = @imagecreatefromjpeg ('assets/images/wig.jpg');       
    $white = imagecolorallocate($im, 255, 255, 255);
    $myText = mb_strtoupper($myText, 'UTF-8');
    $font = 'PassingNotes.ttf';

    if (strlen($myText) < 24)
    {   

老实说,我不知道发生了什么。在我的计算机和服务器中,代码完全相同,在我的计算机中运行良好。

似乎不喜欢您在一行内引用从函数返回的数组。请尝试将imagettfbbox返回的数组分配给一个变量,然后引用该变量,即$myvar[4]。也许这是一个PHP版本的东西。Utkanos,它成功了!谢谢:D的确,我的本地版本是5.5,服务器是5.2
        $textW = imagettfbbox(80, 5, 'PassingNotes.ttf', $myText)[4]; 
        if ($textW >= 680)
        {
            $myText = SplitInBounds($myText, 80, 680);  
            error_log('text: '. $myText);
        }
        imagettftext($im, 80, 5, 230, 380, $white, 'PassingNotes.ttf', $myText);
    }