找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
查看: 401|回复: 1

将PHP作为Shell脚本语言使用

[复制链接]
发表于 2005 年 10 月 8 日 15:42:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
    我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以
很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优
势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。  要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编
译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册
http://www.php.net)。   一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网
页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:   
#!/usr/local/bin/php -q  我们在PHP执行文件后面加入了参数“-1”,这样子PHP就不会输出HTTPHeader(如果仍需要作为
Web的动态网页,那么你需要自己使用header函数输出HTTPHeader)。当然,在Shell脚本的里面你还是需要使用PHP的开始和结束
标记:     现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:   #!/usr/local/bin/php -q
    上面这个程序会简单的输出“Hello, world!”到显示器上。 一、传递Shell脚本运行参数给PHP:   作为一个Shell
脚本,经常会在运行程序时候加入一些参数,PHP作为Shell脚本时有一个内嵌的数组“$argv”,使用“$argv”数组可以很方便
的读取Shell脚本运行时候的参数(“$argv[1]”对应的是第一个参数,“$argv[2]”对应的是第二个参数,依此类推)。比如下
面这个程序:   #!/usr/local/bin/php -q     上面的代码在运行的时候需要两个参数,分别是姓和名,比如这样子运
行:   [dbrogdon@artemis dbrogdon]$ scriptname.ph Darrell Brogdon  Shell脚本在显示器上面会输出:   Hello,
Darrell Brogdon! How are you today?   [dbrogdon@artemis dbrogdon]$  在PHP作为动态网页编写语言的时候也含有
“$argv”这个数组,不过和这里有一些不同:当PHP作为Shell脚本语言的时候“$argv[0]”对应的是脚本的文件名,而当用于动
态网页编写的时候,“$argv[1]”对应的是QueryString的第一个参数。本新闻共2页,当前在第
1
页  1  2  


转自:  http://edu.chinaz.com
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
 楼主| 发表于 2005 年 10 月 8 日 15:42:13 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价

将PHP作为Shell脚本语言使用

    我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以
很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优
势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。  要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编
译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册
http://www.php.net)。   一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网
页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:   
#!/usr/local/bin/php -q  我们在PHP执行文件后面加入了参数“-1”,这样子PHP就不会输出HTTPHeader(如果仍需要作为
Web的动态网页,那么你需要自己使用header函数输出HTTPHeader)。当然,在Shell脚本的里面你还是需要使用PHP的开始和结束
标记:     现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:   #!/usr/local/bin/php -q
    上面这个程序会简单的输出“Hello, world!”到显示器上。 一、传递Shell脚本运行参数给PHP:   作为一个Shell
脚本,经常会在运行程序时候加入一些参数,PHP作为Shell脚本时有一个内嵌的数组“$argv”,使用“$argv”数组可以很方便
的读取Shell脚本运行时候的参数(“$argv[1]”对应的是第一个参数,“$argv[2]”对应的是第二个参数,依此类推)。比如下
面这个程序:   #!/usr/local/bin/php -q     上面的代码在运行的时候需要两个参数,分别是姓和名,比如这样子运
行:   [dbrogdon@artemis dbrogdon]$ scriptname.ph Darrell Brogdon  Shell脚本在显示器上面会输出:   Hello,
Darrell Brogdon! How are you today?   [dbrogdon@artemis dbrogdon]$  在PHP作为动态网页编写语言的时候也含有
“$argv”这个数组,不过和这里有一些不同:当PHP作为Shell脚本语言的时候“$argv[0]”对应的是脚本的文件名,而当用于动
态网页编写的时候,“$argv[1]”对应的是QueryString的第一个参数。本新闻共2页,当前在第
1
页  1  2  


转自:  http://edu.chinaz.com
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 11 月 20 日 06:13 , Processed in 0.022486 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表