用PHP在Linux上读取输入并进行文件操作

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

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

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

#!/usr/bin/php
<?php
function read_input()
{
$fp = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
printf("Please supply your name: ");
$name = read_input();
printf(" Hello, $name. ");
?>
</code>

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

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

#!/usr/bin/php
<?php
if (file_exists($argv[1]))
{
$file = $argv[1];
} else {
printf("ERROR: File '$file' does not exist! ");
exit 1;
}
$data = file($file);
$c = 1;
foreach ($data as $line)
{
printf(sprintf("[%s]: %s", $c, $line));
$c++;
}

在上述例子中,PHP脚本将会读取传递到命令行文件中的每一行,并紧随当前行数将其输出。如果文件不存在,脚本会打印一个出错提示,并将返回代码1并退出(1表示出错;在正常运行中,脚本会以返回代码0退出)。file() 函数在这里使用,它读取文件的每行,列成数组(在这个例子中,数组为$data),然后用于foreach()语句中,在数组中循环,一次是文件中的一行。

PHP已经不再严格拘泥于基于Web的编程。我们可以将它轻松应用于编写命令行脚本,既灵活又快速。同样地,几乎所有你能用Web脚本进行操作的,例如,数据库操作,都可以轻松地应用PHP的命令行脚本完成。

时间: 2024-08-03 13:30:33

用PHP在Linux上读取输入并进行文件操作的相关文章

用PHP脚本在Linux系统上读取输入和对文件进行操作

Perl作为Linux系统命令行脚本的首选解释语言的日子一去不复返了.今天,我们有了更多的选择,包括Python.Ruby和PHP.如果你已经为网站编写PHP代码,并熟谙这种语言,那么你会发现,在命令行使用PHP的速度之快,效果之好令人惊奇. 在脚本中,任何脚本语言的一个最大功用是对文件进行操作并获取用户输入.PHP处理这些丝毫不比其它任何脚本语言逊色. 例如,利用PHP在脚本执行期间处理读取用户提供输入,使用: #!/usr/bin/php <?phpfunction read_input()

外行入门,求助,逐个读取excel表格各行数据,进行一些网页上的输入、点击操作

问题描述 在一个网页上对这些数据进行相同的处理,包含"点击.在新弹出的窗口中点击.选择下拉菜单中的某项.确定和提交",并且希望得到对这些数据处理成功还是失败的结果,办公室里经常会重复这样简单但繁琐的操作,希望找到一个好的方法来解决这类问题,今后工作就能事半功倍了,求大神指导,万谢! 解决方案 解决方案二:求大神解答!解决方案三:Java操作EXCEL用POI去做.解决方案四:引用2楼huxiweng的回复: Java操作EXCEL用POI去做. 请问我需要进行哪些方面的学习呢?解决方案

在Mac Linux上如何快速判断一个文件是否是恶意程序?

熟悉Mac/Linux的用户经常会使用命令行,如果遇到系统异常,如CPU使用率暴涨等,经常会使用top命令去定位到底是哪个程序出现了异常.找到相关程序后,由于许多用户自身没有安全背景或者不大懂得逆向,便无法去分析程序到底做了什么,不敢枉然kill掉程序.又如果文件夹下面无故多了非自己创建的程序,这时也不敢枉然删除.针对这一情况,本文介绍几种小技巧,让你快速判断一个程序是否是恶意样本. 1.使用file命令快速识别文件类型   如图使用file命令识别名为bashd的文件,从结果中可以看出这个文件

使用C#,通过OPC自动化接口,实现从OPC服务器上读取现有项值的操作疑问

问题描述 使用的是OPCDAAuto.dll文件,引用是OPCAutomation.问题如下:1.如果OPC服务器中已经存在一定数量的Item,那么用OPCBrowser可以将他们遍历出来,但是如何根据遍历出来的Item来读取值呢?我是用Listbox来呈现这些Item的,但是只有文本属性啊.2.刚才尝试了一下连接服务器,发现连接上之后弹出错误对话框,显示:CannotLoadFileorAssemblyInterop.opcautomation等等...是OPC服务器配置的问题还是测试机上没有

Java输入输出流和文件操作

操作系统中的文件和目录概念 文件与文件系统 文件是信息的一种组织形式,是存储在外部存储介质上的具有标志名的一组相关信息集合. 文件系统用文件概念来组织和管理存放在各种介质上的信息.文件系统提供目录机制实现文件的"按名存取". 目录结构与文件检索 目录是文件系统组织和管理文件的基本单位,目录中保存它所管理的每个文件的基本属性信息(成为文件目录项或文件控制块).除了文件外,目录中还可以包含子目录和文件,子目录中还可以再有子目录和文件,由此构成目录的多级树状结构.文件是这种树状结构的叶子节点

学习Linux命令之最基本的文件操作

  cd cd 是打开某个路径的命令,也就是打开某个文件夹,并跳转到该处. 代码如下: $ cd path ### path 为你要打开的路径. 其中 path 有绝对路径和相对路径之分,绝对路径强调从 / 起,一直到所在路径.相对路径则相对于当前路径来说,假设当前家目录有etc 文件夹(绝对路径应为 /home/username/etc),如果直接 cd etc 则进入此文件夹,但若是 cd /etc/ 则是进入系统 etc ,多琢磨一下就可以理解了.另外在 Linux 中, . 代表当前目录

Linux上12个高效的文本过滤命令

在这篇文章中,我们将会看一些 Linux 中的过滤器命令行工具.过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出. 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务. 下面是 Linux 上的一些有用的文件或者文本过滤器. 1. awk 命令 awk 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器.你可以通过阅读我们的 awk 系列 1 到 13 部分 来开始使用它

Linux 上 12 个高效的文本过滤命令

在这篇文章中,我们将会看一些 Linux 中的过滤器命令行工具.过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出. 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务. 下面是 Linux 上的一些有用的文件或者文本过滤器. 1. awk 命令 awk 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器.你可以通过阅读我们的awk 系列 1 到 13 部分 来开始使用它.

提前认识软件开发(12) 配置文件读取及文件操作

在通信领域的软件开发项目中,C语言是主流的编程语言,而文件操作在其中又占有很重要的地位.此外,为了体现产品的灵活性,可添加配置文件对某些重要的参数进行按需配置.这就要求程序能够准确读取到各个配置项的值. 本文以一个实际的小软件为例,介绍了C语言中配置文件的读取方法和重要的文件操作函数的使用方法,为相关软件开发项目提供了有益的参考. 1.前言 在一般的软件项目中,常常需要用C语言对文件进行操作.在诸如对账之类的程序中,尤其如此.而C语言中有关文件操作的函数多达数十种,熟悉常用函数(如fopen.f