pipe管道的应用
用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作交握,而管道动作则预处理普通文件没什么区别了。看看下面的程序你就明白了,这个程序会传送一封电子邮件给yqqfgq@china.com:
$fp=popen("/usr/sbin/sendmail yqqfgq@china.com","w");
$message="Hi!是我啊,我是yqqfgq啊!:)n";
fputs($fp,"Subject:$subjectn");
fputs($fp,"From:yqqfgqn");
fputs($fp,"Reply-to:yqqfgq@china.com");
fputs($fp,$message);
fputs($fp,"
.
");
pclose($fp);
?>相关阅读:
ASP.NET1.1中动态树的实现
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
jQuery 性能优化指南 (1)
CSS实例教程:制作网页列表菜单
ASP代码出现80040e14错误的解决方法
用PHP4访问Oracle815
SQL查询中的转义序列不对的解决办法
SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
用javascript动态调整iframe高度的代码
Web标准学习:理解结构和表现相分离
PHP实现异步调用方法研究与分享
用JavaScript编写COM组件的步骤
用javascript实现截取字符串包含中文处理的函数
使用session_set_save_handler函数重载SESSION存储方式之MYSQL