imagettfbbox: правильный синтаксис на тестовой машине, не на сервере

#php #syntax #gd

#php #синтаксис #gd

Вопрос:

Я работаю над небольшим сайтом, который генерирует изображение с наложенным на него пользовательским вводом текста. Я использовал XAMPP для разработки на своем локальном компьютере, но он не работает на сервере компании. Я проверил, что GD и Freetype установлены правильно, и поддержка PNG включена для GD.

Как ни странно, я получаю ошибку:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный ‘[‘ в /buddy.php в строке 15

Код выглядит следующим образом:

 <?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)
    {   
  

Следующая строка — строка 15

         $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);
    }
  

Честно говоря, я понятия не имею, что происходит. Код точно такой же на моем компьютере и на сервере, и он отлично работает на моем компьютере.

Комментарии:

1. Похоже, вам не нравится, что вы ссылаетесь на массив, возвращаемый из функции, в пределах одной строки. Попробуйте присвоить возвращаемый массив из imagettfbbox переменной, а затем сослаться на это, т. Е. $myvar[4] . Возможно, это связано с версией PHP.

2. Утканос, это сработало! Спасибо: D Действительно, моя локальная версия 5.5, сервер 5.2