用linux的朋友一定知道shell提供的pipe(管道)功能吧,或許你還不知道他的全名,那你用沒用過這樣的命令:
cat INSTALL | more
這種類型的命令用法就是利用管道的技術著出來的,與重新定向(redirection)是不同的。
PHP中提供popen函數來打開一個管道:
int popen(string command,string mode);
popen()打開一個管道,也就是打開處理文件指針。打開一個管道後,返回一個文件指針,接下來的用法就和普通文件的讀寫一樣了。看看下面吧:
$fp=popen("/bin/ls -l -FN /ect","r");
while(!feof($fp))
ehco fgets($fp,4096)."
";
pclose($fp);
?>
輸出的結果你試試吧。
管道的應用很廣的,比如,我們可以打開一個sendmail的管道來傳送電子郵件。利用管道比起用socket更簡單易懂。因為利用socket必須懂得如何與sendmail作交握,而管道動作則預處理普通文件沒什麼區別了。看看下面的程序你就明白了,這個程序會傳送一封電子郵件給[email protected]:
$fp=popen("/usr/sbin/sendmail [email protected]","w");
$message="Hi!是我啊,我是yqqfgq啊!:)n";
fputs($fp,"Subject:$subjectn");
fputs($fp,"From:yqqfgqn");
fputs($fp,"Reply-to:[email protected]");
fputs($fp,$message);
fputs($fp,"
.
");
pclose($fp);
?>
好用吧!呵呵,就這麼多了。兄弟們有什麼意見就和我聯系吧。[email protected]