2011-04-28 118 views
1

也許我的問題很簡單,但我無法回答它。不同的輸出與PHP客戶端和瀏覽器

我這個小PHP代碼:

<?php 

$line="echo 'hello' | lpr -Pmyprinter"; 
$out=system($line,$output); 
?> 

當我用我的命令行執行該代碼(我用PHP 5.3.6和Apache 2.2.17的Linux),它在myprinter印有「你好」。

如果我使用我的瀏覽器執行此代碼,它看起來像管道被忽略!

我試着用exec(),passthru()等等,結果是一樣的。

感謝您的幫助。

P.S:我以前用PHP 5.1運行這段代碼。

+2

執行web服務器用戶有權限使用打印機? – 2011-04-28 20:51:31

+0

嘗試從終端 – Flask 2011-04-28 21:09:56

+0

運行你的腳本作爲apache用戶(www-debian上的數據)感謝您的意見。是的,我從終端執行腳本作爲apache用戶(在我的系統中是apache)並且它工作正常。另外,我使用php命令get_current_user()來確保腳本以apache方式執行。用戶是相同的,但是Web服務器不運行。 – gonvi 2011-04-28 22:01:01

回答

0

嘗試使用以下:

echo `echo hello | lpr -Pmyprinter` 
+0

嗨。我剛剛嘗試過,結果是一樣的,在終端上使用php也沒關係,並且從Web瀏覽器管道被忽略。 – gonvi 2011-04-29 08:02:30

+0

如何使用escapeshellarg和/或escapeshellcmd? – 2011-05-04 09:31:51

相關問題