Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2016, 20:34   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию Интерпретатор РНР. PHP Fatal error

Добрый день. Есть следующая ситуация :
- ОС ВЫНь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\Dgd atToXlsx\convert.php on line 24
PHP Fatal error: Call to undefined function ReadLong() in C:\Users\admin\Documents\GitHub\Dgd atToXlsx\convert.php on line 92

PHP код:
//--------- 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];
}
//---------------------------------------------------
Вопрос : что тут не так?
с РНР знаком немного, только для использования в веб-страницах
Pcrepair вне форума Ответить с цитированием
Старый 07.11.2016, 20:57   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Нужно больше инфы. А оши ка говорит только то что идет вызов функции котой еще не существует на моент вызова.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 07.11.2016, 21:22   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Pcrepair Посмотреть сообщение
завершающего ?> НЕТ в оригинале
Он не нужен (если только у вас не HTML и PHP в одном файле) и лучше его не ставить.

Цитата:
Сообщение от Pcrepair Посмотреть сообщение
установлен PowerShell 3. работает
гиту и композеру все равно, хоть PowerShell, хоть cmd.


Цитата:
Сообщение от Pcrepair Посмотреть сообщение
//тут для чего TAB? вроде нельзя? нужно пробел?
где TAB?
Но разрешено что угодно, хоть табы, хоть пробелы, хоть ничего. Естественно лучше придерживаться какого-то одного соглашения.
Цитата:
Сообщение от Pcrepair Посмотреть сообщение
все работает перезапускается сервер
Причем тут сервер? тут только РНР нужен.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 07.11.2016 в 21:29.
Alex11223 вне форума Ответить с цитированием
Старый 07.11.2016, 22:06   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Создал виртуальный хост.
Клонировал в него указанный репозиторий с GitHub.
composer update
Переименовал download в Download (в коде название директории указано в верхнем регистре – хотя для Форточек это, наверное, и неважно).
php convert.php
Всё работает – генерируется csv и директория с какими-то служебными данными в Downloads.

Если прям совсем никак – подруби common.php напрямую в convert.php:
PHP код:
// require_once('vendor/autoload.php');
require_once('./common/common.php'); 
Так тоже всё работает.
Andkorol вне форума Ответить с цитированием
Старый 07.11.2016, 22:15   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я тоже попробовал, у меня чот тоже самое, что и у автора даже с
Код:
require_once(__DIR__ .  '/common/common.php');
Код:
C:\Users\Alex\Documents\_ccc\DgdatToXlsx>php -v
PHP 7.0.10 (cli) (built: Aug 18 2016 10:03:00) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans

C:\Users\Alex\Documents\_ccc\DgdatToXlsx>php ../composer.phar -V
Composer version 1.3-dev (8ad6385ffb68495e1d2afc8c554526d018e2d8e9) 2016-11-06 17:18:52

C:\Users\Alex\Documents\_ccc>git clone https://github.com/mbry/DgdatToXlsx
Cloning into 'DgdatToXlsx'...
remote: Counting objects: 62, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 62 (delta 0), reused 0 (delta 0), pack-reused 58
Unpacking objects: 100% (62/62), done.
Checking connectivity... done.

C:\Users\Alex\Documents\_ccc>cd DgdatToXlsx

C:\Users\Alex\Documents\_ccc\DgdatToXlsx>php ../composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files


C:\Users\Alex\Documents\_ccc>php convert.php

<выводит содержимое common.php>
...
PHP Notice:  Undefined offset: 1 in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php on line 24
PHP Stack trace:
PHP   1. {main}() C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php:0

Notice: Undefined offset: 1 in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php on line 24

Call Stack:
    0.2051     438816   1. {main}() C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php:0

PHP Fatal error:  Uncaught Error: Call to undefined function ReadLong() in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php:92
Stack trace:
#0 {main}
  thrown in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php on line 92

Fatal error: Uncaught Error: Call to undefined function ReadLong() in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php on line 92

Error: Call to undefined function ReadLong() in C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php on line 92

Call Stack:
    0.2051     438816   1. {main}() C:\Users\Alex\Documents\_ccc\DgdatToXlsx\convert.php:0
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.11.2016, 22:31   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А, я понял, надо в common.php заменить <? на <?php

<? видимо отключено по умолчанию.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.11.2016, 06:15   #7
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А, я понял, надо в common.php заменить <? на <?php

<? видимо отключено по умолчанию.
Чтобы такого не было, в php.ini надо поменять настройку:
PHP код:
short_open_tag On 
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 08.11.2016, 09:02   #8
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

спасибо за ответы, но... выше перечисленные меры не помогли :
short_open_tag = On
в common.php заменить <? на <?php
require_once('./common/common.php');
download в Download

ошибка все там же

Andkorol, не подскажите, какая у Вас версия РНР?
и если можно php.ini опубликуйте
может что то еще нужно, типа переменные среды прописать?
у меня
PATH C:\Users\admin\Documents\GitHub\Dgd atToXlsx
%SystemRoot%\system32;%SystemRoot%; %SystemRoot%\System32\Wbem;%SYSTEMR OOT%\System32\WindowsPowerShell\v1. 0\;C:/PHP;C:/PHP/ext;%systemroot%\System32\WindowsPo werShell\v1.0\
PHPRC C:/PHP/

Также у меня вначале АПАЧ потом к нему подключен РНР (чисто для контроля работоспособности РНР). а может нужно как то по другому. тут ведь чистый интерпретатор РНР. никто не в курсе?
Pcrepair вне форума Ответить с цитированием
Старый 08.11.2016, 09:06   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Точно та же?
Попробуйте снести и заново клонировать, может вы что-то еще поменяли.


А зачем DgdatToXlsx в PATH?
Если открыть cmd/powershell в какой-то папке (cd или меню в проводнике с вин8), то для обращения к файлам в ней можно не писать полный путь/не добавлять в PATH.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 08.11.2016 в 09:13.
Alex11223 вне форума Ответить с цитированием
Старый 08.11.2016, 10:23   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pcrepair Посмотреть сообщение
Andkorol, не подскажите, какая у Вас версия РНР?
и если можно php.ini опубликуйте
PHP код:
php -v
PHP 5.5.38 
(cli) (builtAug 21 2016 21:48:49)
Copyright (c1997-2015 The PHP Group
Zend Engine v2.5.0
Copyright (c1998-2015 Zend Technologies 
php.ini
Но у меня Unix-система – пэотому мой php.ini для вас не показателен.
На Windows я б вообще не мучился с настройками – а поставил бы какой-нибудь OpenServer, и все дела.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommen jei_ Visual C++ 13 10.01.2015 15:51
Игра Скачки! Выдает ошибку: [Linker Fatal Error] Fatal: Expected a file name: SEV7 Общие вопросы C/C++ 0 19.05.2012 00:56
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/main.exe : fatal error LNK11 prefak Win Api 0 19.04.2009 16:51
[Linker Fatal Error] Fatal: Unable to open file 'CXGRIDVCLC6.LIB' Donn Общие вопросы C/C++ 0 16.04.2009 15:25
[Linker Fatal Error] Fatal: Expected a file name: oseni Общие вопросы C/C++ 4 02.01.2009 16:36