techsir 登陆 |注册|TS首页
  首页 快活林 猿氏悟语

用PHP脚本在Linux系统上读取输入和对文

By: 盖茨 发表于 2008-11-7 11:26:31 · 4272次点击   回复:0   
Perl作为Linux系统命令行脚本的首选解释语言的日子一去不复返了。今天,我们有了更多的选择,包括Python、Ruby和PHP。如果你已经为网站编写PHP代码,并熟谙这种语言,那么你会发现,在命令行使用PHP的速度之快,效果之好令人惊奇。

在脚本中,任何脚本语言的一个最大功用是对文件进行操作并获取用户输入。PHP处理这些丝毫不比其它任何脚本语言逊色。

例如,利用PHP在脚本执行期间处理读取用户提供输入,使用:

以下为引用的内容:

  1. #!/usr/bin/php
  2. <?php
  3. function read_input()
  4. {
  5. $fp = fopen("/dev/stdin", "r");
  6. $input = trim(fgets($fp, 255));
  7. fclose($fp);
  8. return $input;
  9. }

  10. printf("Please supply your name: ");
  11. $name = read_input();
  12. printf(" Hello, $name. ");
  13. ?>
  14. </code>



  15. 上面定义的read_input()函数将从STDIN提取输入,存储于$input 变量中,整理所有引导的和尾随的空白空间,然后返回。

  16. 同样的原理还可以应用于读取和操作标准文件;记住,对于Linux,STDIN只是另一个文件而已(相应地,上述例子中的opening /dev/stdin 也是这样)。

  17. 以下为引用的内容: [code]
  18. #!/usr/bin/php
  19. <?php

  20. if (file_exists($argv[1]))
  21. {
  22. $file = $argv[1];
  23. } else {
  24. printf("ERROR: File '$file' does not exist! ");
  25. exit 1;
  26. }
  27. $data = file($file);
  28. $c = 1;
  29. foreach ($data as $line)
  30. {
  31. printf(sprintf("[%s]: %s", $c, $line));
  32. $c++;
  33. }
  34. ?>
复制代码
在上述例子中,PHP脚本将会读取传递到命令行文件中的每一行,并紧随当前行数将其输出。如果文件不存在,脚本会打印一个出错提示,并将返回代码1并退出(1表示出错;在正常运行中,脚本会以返回代码0退出)。file() 函数在这里使用,它读取文件的每行,列成数组(在这个例子中,数组为$data),然后用于foreach()语句中,在数组中循环,一次是文件中的一行。

PHP已经不再严格拘泥于基于Web的编程。我们可以将它轻松应用于编写命令行脚本,既灵活又快速。同样地,几乎所有你能用Web脚本进行操作的,例如,数据库操作,都可以轻松地应用PHP的命令行脚本完成。
4272次点击
0个回复  |  直到 2008-11-7 11:26:31
添加一条新回复
您需要登录后才可以回帖 登录 | 成为会员 新浪微博登陆

标签云|手机版|科技先生 ( 京ICP备07036130号 Powered by Discuz! X )

GMT+8, 2024-5-19 14:40