За последние 24 часа нас посетили 21499 программистов и 1025 роботов. Сейчас ищут 710 программистов ...

Разрыв мозга от syntax error, unexpected '')'

Тема в разделе "Прочие вопросы по PHP", создана пользователем Alex96, 20 ноя 2019.

Метки:
  1. Alex96

    Alex96 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    6
    Симпатии:
    0
    Всем Привет!
    В общем такая ситуация.
    Не знаю что делать. При выполнении вот этих строк
    Код (Text):
    1. $header['filename'] = $header['filename'] . '.restore';
    вылазиет ошибка: Parse error: syntax error, unexpected '')' (T_CONSTANT_ENCAPSED_STRING) in /var/www/siurgtu/restore.php on line 3418

    Может кто сталкивался с таким? СПАСИБО!
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. /* тут пару строк */
    2. 3418 строка
    3. /* тут пару строк */
    в студию
     
  3. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    проверьте строчку перед этой и после нее

    а вообще, такая конкатенация обычно пишется так:

    PHP:
    1. $header['filename'] .= '.restore';
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    слабенькие нынче мозги пошли, от обычной синтаксической ошибки - скорее всего незакрытой скобки или не поставленой ; - разрываются на раз ... куда катимся)))
     
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @ADSoft, учитывая то что решается такая проблема обычным редактором с подсветкой синтаксиса.
     
  6. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    А потому что люди, которые пишут PHP, до сих пор так и не догадались выводить корректные сообщения об ошибках.

    Всё гонятся за модой. Интерфейсы... абстрактные классы... а какие-то основные самые элементарные и нужные вещи - так и не реализованы в полной мере.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Корректно Add __конструктора бреда
     
  8. Alex96

    Alex96 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    6
    Симпатии:
    0
    Прошу чуть ниже посмотреть код и сделать свои предложения) Код кстати не мой, это из файла восстановление 1С bitrix разработчик. Скачанный с официального сайта, но не работающий на php7.1 из за этой ошибки
    --- Добавлено ---
    Код (Text):
    1. function readHeader($Long = false)
    2.     {
    3.         $header = parent::readHeader($Long);
    4.         if (!$Long && is_array($header))
    5.         {
    6.             $dr = str_replace(array('/','\\'),'',$_SERVER['DOCUMENT_ROOT']);
    7.             $f = str_replace(array('/','\\'),'',$this->path.'/'.$header['filename']);
    8.  
    9.             if ($header['type'] != 5 && (self::strpos($f, $dr.'bitrixmodules') === 0 || self::strpos($f, $dr.'bitrixcomponentsbitrix') === 0))
    10.             {
    11.                 if (!file_exists(RESTORE_FILE_LIST))
    12.                 {
    13.                     self::xmkdir($_SERVER['DOCUMENT_ROOT'].'/bitrix/tmp');
    14.                     file_put_contents(RESTORE_FILE_LIST, "<?php die(); ?>\n");
    15.                 }
    16.                 file_put_contents(RESTORE_FILE_LIST, addslashes(self::substr(str_replace('\\','/',$header['filename']), 7))."\n", 8); // strlen(bitrix/) = 7
    17.             }
    18.  
    19.             if ($f == $dr.'restore.php')
    20.                 return true;
    21.             elseif ($f == $dr.'.htaccess')
    22.             {
    23.                 $header['filename'] .= '.restore';
    24.                 $this->header['filename'] = $header['filename'];
    25.             }
    26.             elseif ($f == $dr.'bitrixphp_interfacedbconn.php' && file_exists($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/dbconn.php'))
    27.                 $header['filename'] = str_replace('dbconn.php','dbconn.restore.php',$header['filename']);
    28.             elseif (preg_match('#[^\x00-\x7f]#', $header['filename'])) // non ASCII character detected
    29.             {
    30.                 $this->header['filename'] = $header['filename'] = $this->DecodeFileName($header['filename']);
    31.                 if ($this->header['filename'] === false)
    32.                     return false;
    33.             }
    34.         }
    35.         return $header;
    36.     }
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
  10. Alex96

    Alex96 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    6
    Симпатии:
    0
    Ошибок нет, но вот ошибка от php идет. Из за чего такое может быть?
     
  11. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Попробуйте в последнем блоке фигурные скобки проставить для условных операторов.

    Не факт что поможет, но мб дело в этом.
    --- Добавлено ---
    ...небось питонщики какие-то писали из битрикса))

    Понапишут всякой дряни, а потом идут на Хабре блатовать :D