pipe管道的应用
时间:2007-02-17 来源:PHP爱好者
用linux的朋友一定知道shell提供的pipe(管道)功能吧,或许你还不知道他的全名,那你用没用过这样的命令:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
cat INSTALL | more
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
这种类型的命令用法就是利用管道的技术着出来的,与重新定向(redirection)是不同的。
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
PHP中提供popen函数来打开一个管道:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
int popen(string command,string mode);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
popen()打开一个管道,也就是打开处理文件指针。打开一个管道后,返回一个文件指针,接下来的用法就和普通文件的读写一样了。看看下面吧:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
<?php
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$fp=popen("/bin/ls -l -FN /ect","r");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
while(!feof($fp))
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
ehco fgets($fp,4096)."<BR>";
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
pclose($fp);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
?>
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
输出的结果你试试吧。
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
管道的应用很广的,比如,我们可以打开一个sendmail的管道来传送电子邮件。利用管道比起用socket更简单易懂。因为利用socket必须懂得如何与sendmail作交握,而管道动作则预处理普通文件没什么区别了。看看下面的程序你就明白了,这个程序会传送一封电子邮件给[email protected]:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
<?php
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$fp=popen("/usr/sbin/sendmail [email protected]","w");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$message="Hi!是我啊,我是yqqfgq啊!:)n";
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"Subject:$subjectn");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"From:yqqfgqn");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"Reply-to:[email protected]");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,$message);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"n.n");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
pclose($fp);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
?>
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
好用吧!呵呵,就这么多了。兄弟们有什么意见就和我联系吧。[email protected]
php爱好者 站 http://www.phpfans.net 网页制作|网站建设|数据采集.
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
cat INSTALL | more
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
这种类型的命令用法就是利用管道的技术着出来的,与重新定向(redirection)是不同的。
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
PHP中提供popen函数来打开一个管道:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
int popen(string command,string mode);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
popen()打开一个管道,也就是打开处理文件指针。打开一个管道后,返回一个文件指针,接下来的用法就和普通文件的读写一样了。看看下面吧:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
<?php
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$fp=popen("/bin/ls -l -FN /ect","r");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
while(!feof($fp))
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
ehco fgets($fp,4096)."<BR>";
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
pclose($fp);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
?>
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
输出的结果你试试吧。
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
管道的应用很广的,比如,我们可以打开一个sendmail的管道来传送电子邮件。利用管道比起用socket更简单易懂。因为利用socket必须懂得如何与sendmail作交握,而管道动作则预处理普通文件没什么区别了。看看下面的程序你就明白了,这个程序会传送一封电子邮件给[email protected]:
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
<?php
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$fp=popen("/usr/sbin/sendmail [email protected]","w");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
$message="Hi!是我啊,我是yqqfgq啊!:)n";
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"Subject:$subjectn");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"From:yqqfgqn");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"Reply-to:[email protected]");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,$message);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
fputs($fp,"n.n");
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
pclose($fp);
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
?>
wwww.chin aitpower.comTFq3SCVijzgyvjjCGpK1Cz61J
好用吧!呵呵,就这么多了。兄弟们有什么意见就和我联系吧。[email protected]
php爱好者 站 http://www.phpfans.net 网页制作|网站建设|数据采集.
相关阅读 更多 +