Интерпретатор РНР. PHP Fatal error

 
0
 
PHP
ava
Pcrepair | 07.11.2016, 20:30
Добрый день. Есть следующая ситуация :
- ОС ВЫНь7СП1 и все нужные патчи, все работает
- веб-сервер АПАЧ (httpd-2.4.23-win32-VC14), все работает
- РНР (php-5.6.27-Win32-VC11-x86), все работает перезапускается сервер, страница из сервера с РНР доступна
- установлен Composer 1.2.2 все работает (php composer.phar -v) и (echo @php %~dp0composer.phar %*>composer.bat)
- установлен PowerShell 3. работает
- установлен GitHubSetup.exe (так в инструкции написано, что нужно)
- установлен проект (git clone https://github.com/mbry/DgdatToXlsx)
- установлены зависимости и сторонние библиотеки (composer update), в норме про ошибки ничего

Предварительные условия запуска выполнены, далее запуск обработки проекта :
  php convert.php
В результате вывод об ошибке и аварийное завершение обработки :
PHP Notice:  Undefined offset: 1 in C:\Users\admin\Documents\GitHub\DgdatToXlsx\convert.php on line 24
PHP Fatal error:  Call to undefined function ReadLong() in C:\Users\admin\Documents\GitHub\DgdatToXlsx\convert.php on line 92


//--------- convert.php -----------------------------
require_once('vendor/autoload.php');
...
$id = ReadLong();  //92 строка
...
//завершающего ?> НЕТ в оригинале
//---------------------------------------------------

//---------- autoload.php ---------------------------
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit9a904986913db37dd90a4e24005b3a6f::getLoader();
//завершающего ?> НЕТ в оригинале
//---------------------------------------------------

//--------- autoload_real.php -----------------------
// autoload_real.php @generated by Composer
//упоминания о common.php тут нет
//---------------------------------------------------

//------------ common.php ---------------------------
//тут список функций, но  в выше стоящих скриптах нет ссылки на этот скрипт
//та самая функция на которой сбой

function ReadLong()
{    
//тут для чего TAB? вроде нельзя? нужно пробел?    global $fp;
    $v = fread($fp, 4);
    $v = unpack("L", $v);
    return $v[1];
}
//---------------------------------------------------


Вопрос : что тут не так?
с РНР знаком немного, только для использования в веб-страницах
Kommentare (7)
ava
_zorn_ | 07.11.2016, 20:36 #
А с чего вы взяли что композер подгрузит (пропишет в автозагрузку) ваш common.php ?
Сами его подгрузите через например require __DIR__ . '/common.php' (или где он у вас находится)

ЗЫ. Почему все думают, что думать за них должны инструменты ?
ava
Pcrepair | 08.11.2016, 06:36 #
вообще откудато грузит (в процессе интерпретации), поскольку останов обработки идет на


function ReadLong()
{    
    global $fp;
    $v = fread($fp, 4);
    $v = unpack("L", $v);
    return $v[1];
}


это видно в окне повершелл, там код функции вызываетя но это не главный вопрос

про компоузер взял с того что инструкция такая : composer update
и там все зависимости (которые аффтыр скрипта прописал) устанавливаются
ну и конечно добавлял и инклюд и требуется только раз, результат тот же

может синтаксис функции неправильный, там TAB вместо пробела используется

но вопрос вообще о том что значит сообщение
PHP Fatal error:  Call to undefined function ReadLong() in C:\Users\admin\Documents\GitHub\DgdatToXlsx\convert.php on line 92

и что этим делать как поправить чтобы хотябы работа скрипта прошла без ошибок
ava
_zorn_ | 08.11.2016, 11:36 #
Это сообщение значит что функции ReadLong нет в области видимости.
Кажись я понял в чем проблема
https://github.com/mbry/DgdatToXlsx/commit/...908393d57eb15a1
Цитата
replace old <? to <?php  13 hours ago 

А у вас был выключен open_short_tag
Т.е. common.php вообще не считался пхп файлом.
Вобщем обновитесь (git pull) и должно заработать
ava
Pcrepair | 08.11.2016, 13:16 #
был выключен open_short_tag
включил - результат тот же
заменил <? на <?php    результат тот же - ошибка в 92 строке

может есть еще идеи?
ava
_zorn_ | 08.11.2016, 15:00 #
Цитата (Pcrepair @  8.11.2016,  20:16 findReferencedText)
может есть еще идеи? 

Я их уже целый вагон выдал (жалко не заметили).
А вообще в этом проекте черех композер только common.php и подключается. Не понятно зачем стрелять ядерными боеголовками по мухам...
Замени
Цитата


require_once('vendor/autoload.php');


на
Цитата


require_once(__DIR__. '/common/common.php');


в convert.php
ava
Pcrepair | 08.11.2016, 18:16 #
Я бы сделал "И я надеюсь ты все же сделал git pull ? ", если бы знал что это такое и с чем его идят.
тут только про компоузер апдейт немного понял

ну вот вставил require_once(__DIR__. '/common/common.php');
результат тот же саймый - ошибка

так что такое git pull? точнее как конкретно могут называться repoName branchName в данном случае и чем это закончится? в исходном проекте вроде ничего нового?

git pull  mbry/DgdatToXlsx C:\Users\admin\Documents\GitHub\DgdatToXlsx\

так чтоле?
ava
Pcrepair | 09.11.2016, 23:12 #
ну вот.
просто надо было делать по люникс а не под ВЫНь
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden