Всем Привет! В общем такая ситуация. Не знаю что делать. При выполнении вот этих строк Код (Text): $header['filename'] = $header['filename'] . '.restore'; вылазиет ошибка: Parse error: syntax error, unexpected '')' (T_CONSTANT_ENCAPSED_STRING) in /var/www/siurgtu/restore.php on line 3418 Может кто сталкивался с таким? СПАСИБО!
проверьте строчку перед этой и после нее а вообще, такая конкатенация обычно пишется так: PHP: $header['filename'] .= '.restore';
слабенькие нынче мозги пошли, от обычной синтаксической ошибки - скорее всего незакрытой скобки или не поставленой ; - разрываются на раз ... куда катимся)))
А потому что люди, которые пишут PHP, до сих пор так и не догадались выводить корректные сообщения об ошибках. Всё гонятся за модой. Интерфейсы... абстрактные классы... а какие-то основные самые элементарные и нужные вещи - так и не реализованы в полной мере.
Прошу чуть ниже посмотреть код и сделать свои предложения) Код кстати не мой, это из файла восстановление 1С bitrix разработчик. Скачанный с официального сайта, но не работающий на php7.1 из за этой ошибки --- Добавлено --- Код (Text): function readHeader($Long = false) { $header = parent::readHeader($Long); if (!$Long && is_array($header)) { $dr = str_replace(array('/','\\'),'',$_SERVER['DOCUMENT_ROOT']); $f = str_replace(array('/','\\'),'',$this->path.'/'.$header['filename']); if ($header['type'] != 5 && (self::strpos($f, $dr.'bitrixmodules') === 0 || self::strpos($f, $dr.'bitrixcomponentsbitrix') === 0)) { if (!file_exists(RESTORE_FILE_LIST)) { self::xmkdir($_SERVER['DOCUMENT_ROOT'].'/bitrix/tmp'); file_put_contents(RESTORE_FILE_LIST, "<?php die(); ?>\n"); } file_put_contents(RESTORE_FILE_LIST, addslashes(self::substr(str_replace('\\','/',$header['filename']), 7))."\n", 8); // strlen(bitrix/) = 7 } if ($f == $dr.'restore.php') return true; elseif ($f == $dr.'.htaccess') { $header['filename'] .= '.restore'; $this->header['filename'] = $header['filename']; } elseif ($f == $dr.'bitrixphp_interfacedbconn.php' && file_exists($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/dbconn.php')) $header['filename'] = str_replace('dbconn.php','dbconn.restore.php',$header['filename']); elseif (preg_match('#[^\x00-\x7f]#', $header['filename'])) // non ASCII character detected { $this->header['filename'] = $header['filename'] = $this->DecodeFileName($header['filename']); if ($this->header['filename'] === false) return false; } } return $header; }
в выложенном куске кода синтаксических ошибок нет проверял тут: https://ru.piliapp.com/php-syntax-check/
Попробуйте в последнем блоке фигурные скобки проставить для условных операторов. Не факт что поможет, но мб дело в этом. --- Добавлено --- ...небось питонщики какие-то писали из битрикса)) Понапишут всякой дряни, а потом идут на Хабре блатовать