Bug #18408 [Com]: printer_list crashes PHP
Edit report at https://bugs.php.net/bug.php?id=18408&edit=1
ID: 18408
Comment by: fziu02 at gmail dot com
Reported by: info at Frenck dot nl
Summary: printer_list crashes PHP
Status: Wont fix
Type: Bug
Package: Unknown/Other Function
Operating System: WinXP
PHP Version: 4.2.1
Block user comment: N
Private report: N
New Comment:
You can use AJAX, and everything works fine...
PHP // lsprt.php
<?php
$getprt=printer_list( PRINTER_ENUM_LOCAL );
echo json_encode($getprt);
?>
HTML
<script>
$.post('lsprt.php', function(data) {
value = JSON.parse(data);
for (val in value) {
$('#asd').append('<option value="'+ value[val]['NAME']
+'">'+
value[val]['NAME'] +'</option>');
}
});
</script>
<select id="asd"></select>
Previous Comments:
------------------------------------------------------------------------
[2003-06-14 11:43:52] saidyjade at hotmail dot com
windows nt40 sp6
windows 2000 pro sp3 + pre-sp4 updates @ 20030609
PHP 4.3.2 / Apache 1.3.27 / php4apache.dll
extension: php_printer.dll
The extension does appear to be in the category "who cares".
only crashes only the array keys "DESCRIPTION" and "COMMENT"
$list_printers = printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED);
// get the name of the first returned printer
$this_printer = $list_printers[0]["NAME"];
// open a connection to your printer
$my_printer = printer_open($this_printer);
.. blah blah
The output of var_dump (as an example)
var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );
array(1) {
[0]=> array(3) {
["NAME"]=> string(14) "Canon BJC-4550"
["DESCRIPTION"]=> string(30) "Canon BJC-4550,Canon BJC-4550,"
["COMMENT"]=> string(0) "This is my funky printer!" } }
As you can see var_dump (under variable functions in the manual) shows and/or retrieves the corrent
information but if you try to place into a variable or read the variable it crashes with an "I
am a windows product and cannot read the memory space correctly cause I sux" message.
so as long as you do not get the comment or description it will list your printers.
if you wish to specify a network printer you need lots more slashes.. example:
\\\\my-network-computer\\my-printer-share
cher cher
------------------------------------------------------------------------
[2002-12-19 23:17:17] iliaa@php.net
Appears to be an abandoned PECL extension.
------------------------------------------------------------------------
[2002-07-18 05:57:50] info at Frenck dot nl
Hi,
I'm having troubles using the printer_list function.
When I try to get a list of all the printers installed
on the machine where the script is running, php crashes.
When I use this code, PHP crashes:
printer_list(PRINTER_ENUM_LOCAL);
When I use this codes, PHP does not crash, but it returns
a empty array.
printer_list(PRINTER_ENUM_LOCAL|PRINTER_ENUM_SHARED);
printer_list(PRINTER_ENUM_SHARED);
When I accessing the script with my browser (trough apache) apache crashes, when I running it as an
command line script, PHP.exe crashes.
Altough, printing to the default printer with the example listed at 'http://www.php.net/manual/en/function.printer-draw-text.php'
works fine.
I'm running PHP 4.2.1 (in apache it's the NON-CGI version running) on windows XP
Professional Dutch edition.
Microsoft Visual C++ tells me there is an access violation in php.exe (php4ts.dll)
Is there a workaround for this problem?
If you need more information, than feel free to contact me.
With kind regards,
Franck Nijhof
PS: Sorry for my bad english.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=18408&edit=1
Thread (7 messages)