我有一台Epson TM-T20(只有以太网接口),我需要一些帮助来通过PHP获取打印机的状态。 对于打印,我使用此Script。 为了获得状态,我尝试了以下代码:
<?php
$fp = fsockopen ('10.1.10.2, 9100'); //Open a Connection
frwrite($fp, chr(16).chr(4).chr(4)); //POS Command "DLE EOT n" Status Transmission
$stat = fgets($fp); //Get the Status
fclose($fp); //Close Connection
$bit = ord($stat); //Get Integer
echo $bit; //A this Point I get only "0"
?>
我使用带有XAMPP的Windows 7系统作为实验室环境。
感谢您的帮助。
P.S。:对不起我的语言,但我不是母语人士。
答案 0 :(得分:1)
我注意到你在没有任何参数的情况下使用fgets(),这将会阻塞直到读取整行。
大多数ESC / POS通信都不涉及换行,我认为这个命令只返回一个字符,所以我建议尝试:
$stat = fgets($fp, 2);
哪个应返回单字符状态字符串。
答案 1 :(得分:-1)
$connection = @fsockopen( $ip, $port );
if ( is_resource( $connection ) ) {
echo "ON";
} else {
echo "OFF";
}