PHP 5.4.7 संकलन ext php_printer




dll printing (3)

मेरा ज्ञान आधार है, मैं php में चारों ओर मिल सकता है। मैंने कभी सी, सी ++, सी # या किसी भी कंपाइलर के साथ काम नहीं किया।

मैं XAMPP 1.7.3 से अपग्रेड किया गया, जो php 5.3, 1.8.1 का उपयोग करता है जिसमें शामिल हैं: अपाचे 2.4.3 MySQL 5.5.27 PHP 5.4.7

यह विंडोज 7 प्रो, विंडोज एक्सपी प्रो और विंडोज सर्वर 2008 आर 2 पर स्थापित किया जा रहा है। लेकिन मैं इसे वर्तमान में विंडोज 7 पर काम करने की कोशिश कर रहा हूं।

मैंने अपग्रेड किया क्योंकि मुझे सुरक्षा कारणों से अपाचे और MySQL का एक नया संस्करण चाहिए। मेरे पास डाउनग्रेड करने का विकल्प नहीं है।

मैं प्रिंटर पर कच्चे डेटा को मुद्रित करने की क्षमता के लिए php_printer.dll का उपयोग करता हूं:

printer_set_option($handle, PRINTER_MODE, "RAW");

मेरा कोड PHP 5.3 में ठीक काम करता था लेकिन PHP 5.4 में तोड़ दिया।

त्रुटि प्राप्त करने के बाद: "घातक त्रुटि: अपरिभाषित फ़ंक्शन प्रिंटर_ओपेन () में कॉल करें ~"। मैंने 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 5.4.7 के लिए पूर्व-संकलित php_printer.dll को खोजने का प्रयास करने के लिए घंटों की तलाश नहीं की है। मैंने निष्कर्ष निकाला है कि मुझे इसे पीईसीएल में स्रोत फाइलों से संकलित करना होगा। 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/ और उन्हें इन्हें अंदर रखें: सी: \ 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' खोलें और 'पावल' के सभी उदाहरणों को 'zval' के साथ बदलें और इसे संकलित करना चाहिए।

हैकटाक धन्यवाद, एक कदम करीब मुझे उम्मीद है,

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 नहीं मिल रहा है, जिसके परिणामस्वरूप मैं उम्मीद कर रहा था।

रिलीज़_TS \ ext फ़ोल्डर में प्रिंटर नामक एक फ़ोल्डर है। इसमें निम्न फ़ाइलें शामिल हैं: 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-अप्रैल-2013 15:34:53 यूटीसी] PHP चेतावनी: PHP स्टार्टअप: अवैध लाइब्रेरी (शायद एक PHP लाइब्रेरी नहीं) 'php_printer.dll' अज्ञात में 0 0 पर अज्ञात

मुझे 5.4.7 फाइलों को पकड़ना पड़ा क्योंकि मैं 5.4.15 का उपयोग कर रहा था लेकिन एक्सएएमपीपी 1.8.1 5.4.7 का उपयोग करता है

http://www.oldapps.com/php_programming_language.php?old_php=8227

और इसे इसमें डाल दें: सी: \ php-sdk \ php54dev \ vc9 \ x86 \ php-5.4.7

फिर प्रिंटर फ़ाइलों को ext फ़ोल्डर में रखें और उपरोक्त सभी प्रक्रियाएं करें और:

कॉन्फ़िगर करें - सक्षम-प्रिंटर = साझा किया गया

और यह काम किया:

PHP संस्करण 5.4.7 php_printer.dll

http://pylonx.com/PHP/php_printer_5.4.7.zip


यदि आप xampp 1.6.8 संस्करण का उपयोग कर सकते हैं तो यह इन समस्याओं को ठीक करेगा। इसमें PHP 5.2.6 है और php_printer.dll फ़ाइल php फ़ोल्डर में ext फ़ोल्डर में सहेजी गई है। इसलिए आपको केवल php.ini फ़ाइल में लाइन एक्सटेंशन = php_printer.dll को अन-टिप्पणी करना होगा जो php info पृष्ठ पर "लोड की गई कॉन्फ़िगरेशन फ़ाइल" अनुभाग के अंतर्गत पथ में दिखाई देता है। आप oldapps.com xamppfrom के उस संस्करण को पा सकते हैं


अपने पसंदीदा PHP के किसी भी संस्करण को डाउनलोड और इंस्टॉल करें और यहां उचित PHP प्रिंटर डीएल इंस्टॉल करें: http://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/


यह PHP के संस्करण 5.4.7 से 5.4.11 में एक बग है।





compilation