Моя база знаний – я могу обойти php. Я никогда не работал с C, C ++, C # или компиляторами.
Я обновлен с XAMPP 1.7.3, который использовал php 5.3, до 1.8.1, который включает в себя: Apache 2.4.3 MySQL 5.5.27 PHP 5.4.7
Он устанавливается на Windows 7 Pro, Windows XP Pro и Windows Server 2008 r2. Но я пытаюсь заставить его работать в Windows 7 в настоящее время.
Я обновился, потому что мне нужна была новая версия Apache и MySQL по соображениям безопасности. У меня нет возможности понизить.
Я использую php_printer.dll для возможности печати необработанных данных на принтер:
printer_set_option($handle, PRINTER_MODE, "RAW");
Мой код отлично работал в PHP 5.3, но ворвался в PHP 5.4.
После получения ошибки: «Неустранимая ошибка: вызов неопределенной функции printer_open () в ~». Я проверил php_error_log и получил следующую информацию.
PHP Warning: PHP Startup: printer: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20100525 These options need to match
Я искал часы, пытаясь найти предварительно скомпилированный php_printer.dll для PHP 5.4.7 безрезультатно. Я пришел к выводу, что мне придется скомпилировать его из исходных файлов в PECL. pecl.php.net/package/printer
Никогда не приходилось делать это, прежде чем я сделал то, что должен делать любой интернет-пользователь. Я искал ее и нашел здесь некоторую информацию: https://wiki.php.net/internals/windows/stepbystepbuild
Это заняло у меня весь день, но работа PHP работала. Но потом попытался создать php_printer.dll Сначала я попробовал:
svn co http://svn.php.net/repository/pecl/printer/trunk pecl/printer
Но он сказал: «svn» не распознается как внутренняя или внешняя команда, операционная программа или командный файл.
Поэтому я просто загрузил файлы самостоятельно: svn.php.net/repository/pecl/printer/trunk/ и поместил их в: C: \ php-sdk \ php54dev \ vc9 \ x86 \ php5.4-201303311430 \ ext \ printer
Я обязательно загрузил библиотеки как из: windows.php.net/downloads/php-sdk/deps/vc9/x86/ Также просто: deps-5.4-vc9-x86.7z
Однако я попробовал один, затем другой; каждый раз, когда я получал следующее, когда пытался судить:
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. printer.c ext\printer\printer.c(266) : error C2065: 'pval' : undeclared identifier
ОБНОВИТЬ
Я получил некоторую помощь на другом форуме.
от hackattack142 »03. Апрель 2013 23:51
Здравствуйте,
Откройте «printer.c» и замените все экземпляры «pval» на «zval», и он должен скомпилироваться.
Спасибо Hackattack, на один шаг ближе, надеюсь,
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>buildconf ~ c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>configure --disable-all --enable-cli --enable-printer ~ c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. internal_functions.c printer.c Creating library Release_TS\php5ts.lib and object Release_TS\php5ts.exp Creating library Release_TS\php.lib and object Release_TS\php.exp SAPI sapi\cli build complete
Казалось, он скомпилирован. Однако; Я не могу найти файл printer.dll или php_printer.dll, результатом которого я надеялся.
В папке Release_TS \ ext есть папка с именем Printer . Он содержит следующие файлы: printer.obj printer.sbr vc90.idb
Я также сделал последний шаг:
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>cd Release_TS c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>php -m [PHP Modules] Core date ereg pcre printer Reflection SPL standard [Zend Modules] c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>
Помощь с другого форума
configure --disable-all --enable-cli --enable-printer=shared
Он работал, и я создал php_printer.dll, однако, когда я пытался его использовать:
В журнале ошибок PHP: [15-Apr-2013 15:34:53 UTC] PHP Предупреждение: запуск PHP: недопустимая библиотека (возможно, не библиотека PHP) 'php_printer.dll' в Unknown on line 0
Мне пришлось захватить 5.4.7 файлов, поскольку я использовал 5.4.15, но XAMPP 1.8.1 использует 5.4.7
http://www.oldapps.com/php_programming_language.php?old_php=8227
И поставьте его в: C: \ php-sdk \ php54dev \ vc9 \ x86 \ php-5.4.7
затем поместите файлы принтера в папку ext и выполнили все указанные выше процессы и:
configure –enable-printer = shared
И это сработало:
PHP версия 5.4.7 php_printer.dll
http://pylonx.com/PHP/php_printer_5.4.7.zip
Загрузите и установите любую версию php, которая вам нравится, и установите соответствующую dll php printer здесь: http://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/
Это ошибка в версиях с 5.4.7 до 5.4.11 PHP.
Если вы можете использовать версию xampp 1.6.8, она исправит эти проблемы. он имеет php 5.2.6, а также файл php_printer.dll сохранен в папке ext в папке php. поэтому вам нужно будет только не комментировать расширение строки = php_printer.dll в файле php.ini, которое было отмечено в пути в разделе «Загруженный файл конфигурации» на странице с информацией о php. вы можете найти эту версию xamppfrom oldapps.com