簡體   English   中英

PHP如何使用shell_exec將變量通過管道傳遞給netcat

[英]PHP how to pipe a variable to netcat with shell_exec

我想將字符串的內容(條形碼打印機的labeldata)發送到netcat進行打印。 我通過將字符串寫入文件並使用下面的代碼來使其工作。

$file = 'out.prn';
file_put_contents($file, $normal_label);
$prn_status = shell_exec('cat '.$file.' | netcat -w 1 192.168.31.10 8000');

但是如何直接從變量中執行呢? 我嘗試過不同的事情,例如

shell_exec($normal_label > netcat...
shell_exec($normal_label | netcat...

為了使腳本正常工作,您可以更改以下行:

$prn_status = shell_exec('cat '.$file.' | netcat -w 1 192.168.31.10 8000');

對此:

$prn_status = shell_exec('echo '.$normal_label.' | netcat -w 1 192.168.31.10 8000');

但是,除了依賴netcat之外,您還可以使用fsockopen直接寫入TCP端口。 然后,您的腳本也可以在沒有netcat上工作。 更便攜(是):

<?php

$fp = fsockopen('192.168.31.10', 8000, $errno, $errstr, 30);

if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $result = '';
    fwrite($fp, $normal_label);
    while (!feof($fp)) {
        $result .= fgets($fp, 128);
    }
    fclose($fp);
}

echo $result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM