• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Shell Script方式的PHP(转) 这种方式_php

php 搞代码 7年前 (2018-06-19) 198次浏览 已收录 0个评论

Shell Script方式的php

PHP 怎么这么红  
最近 PHP(Personal Hypertext Preprocessor) 似乎已经成了这一两年来 linux/Unix 上最广为大家所使用的网页处理语言o它的方便、强大功能与 OpenSource 的特性使得它正逐渐侵蚀到传统 CGI 甚至是 MicroSoft ASP(Active Server Page)的市场o几乎各大网站征招人才莫不以会 PHP 作为基本条件。  
PHP 确实有这个资格可以这么红o原因有下面数点 :  
PHP 是 OpenSource 软件o完全免费o可以自由散布o因此吸引了极多的人来使用o也因为如此o吸引到了商业公司为其发展更好的引擎与最佳化软件(请参考 http://www.zend.com/)。  

http://www.gaodaima.com/45440.htmlShell Script方式的PHP(转) 这种方式_php

PHP 本身非常简单易懂o浅显的指令语法o外加一些基本的对象导向处理能力o让新手足以在最短时间内学会。  
PHP 提供了相当多的功能o包含了数学处理、字符串处理、网络相关功能、各种数据库的支持、影像处理功能、有为数众多的发展者正为 PHP 发展各式各样的新功能o扩充性极佳。  
PHP 非常容易与 Apache 相结合o作为 Apache 的模块来使用o设定安装上相当简单o也因为 Apache 目前已经占据了 web Server 全球 60% 的市场oPHP 自然而然成为 Apache 最佳搭配。  
不过o这次要讲的主题不是 PHP 在网页设计上的应用o而是 PHP 在 Shell Script 上的应用o一般所知的 Shell Script 大约就是 tcsh、bash、perl 或是 python 这几类语言o我所要谈的就是将 PHP 当成 Shell Script 来使用。  
PHP 执行档的安装  
一般 PHP 作为网页处理语言都是要编译成 Apache 的模块o这里当然不么做o也因此编译起来很简单o只要以 root 的身分进行如下动作 :  
解开 php-3.0.xx.tar.gz  
cd php  
configure  
make  
编译完之后o在 php 目录下有一个可执行档o档名为 phpo将它 copy 到 /usr/local/bin 下即可。注意o如果档案太大o可以使用 strip 指令将 php 的方式将不必要的信息去除o这样档案就会小得多了。  
第一个程序  
开始撰写我们的第一个 PHP Shell Script 程序o这个例子印出 "Hello world !" :  
#!/usr/local/bin/php -q  
<?  
echo "Hello, world !";  
?>  
注意到 PHP 原本是应用在网页应用的o因此它内定会送出 HTML 的 HEADERo但是在此我们是要将 PHP 用作 Shell Scripto"-q" 就是表示不要送出 HEADER 的意思o你可以试试看不加上 -q 的显示结果。  
在这个例子中o/usr/local/bin/php 是表示要执行 /usr/local/bin/ 下的 PHPo因为我们刚才将它装在该处。echo 指令将 "Hello, world !" 印出o其中的 "" 字符是换行字符。  
注意到在将这个程序存成档案后o须将其 chmod 成为可执行属性(chmod +x 文件名)o然后才能执行喔。  
进阶使用 I  
有时候我们需要在程序执行时o送进一些参数o比如说 ls 这个指令o后面可以加上 -l 参数oPHP Shell Script 一样也有支持这样的用法o有两个特殊的变量 : $argc 记录着后面送入参数的个数o$argv[] 数组参数存着的则是参数的内容。比如说我现在要设计一个算两个数字总和的程序 :  
#!/usr/local/bin/php -q  
<?  
$sum=0;  
$sum=$sum+$argv[1]+$argv[2];  
echo $sum;  
?>  
假设将此程序命名为 sum.php3o则执行 sum.php3 1 2 按下 enter 则会印出 3。  
如果要算出不特定个数的参数和o那么就得要用到 $argc 这个特殊变量了 :  
#!/usr/local/bin/php -q  
<?  
$sum=0;  
for ($t=1;$t<=$argc;$t++)  
$sum=$sum+$argv[$t];  
echo $sum;  
?>  
假设将此程序命名为 bigsum.php3o则执行 bigsum.php3 1 2 3 4 5 按下 enter 则会印出 15o执行 bigsum.php3 1 2 3 4 5 6 按下 enter 则会印出 21。  
有时候我们需要在程序执行中输入资料o但是 PHP 原本就是用于网页设计o而网页上的资料输入自然都是用 FORM 的方式来输入o所以这将 PHP 作为 Shell Script 时问题就来了o好在 PHP 有提供了开文件功能o而在 Linux/Uinx 之下o输入(input)这件事原本就可以用开档的方式来完成o我们要开启的是 /dev/stdin 这个设备档(stdin 是表示 standard input 的意思)o程序如下 :  
#!/usr/local/bin/php -q  
<?  
$fp=fopen("/dev/stdin","r");  
$inputstr=fgets($fp,100);  
fclose($fp);  

echo " ———————- ";  
echo $inputstr;  
?>  
其中的 fgets($fp,100) 是指从 $fp 这个档案(也就是 "/dev/stdin")中读取出 100 个 byte 的资料o程序执行到这行便会停下来等待我们的输入o当我们输入完按下 enter 之后o程序就会将刚才我们输入的资料给印出来了。  
进阶使用 II  
虽然已经可以处理输入o但是这样的功能显然还是太简单o无法应付更大的应用o比如说我需要一个功能是将一串资料流(data stream)中的 HTML 给去除o这时便需要完整地处理输出输入转向的能力o我们可以先设计程序如下 :  
#!/usr/local/bin/php -q  
<?  
$fp=fopen("/dev/stdin","r");  

while(!feof($fp)) {  
$c=fgetc($fp);  
$inputstr=$inputstr.$c;  
};  

fclose($fp);  

echo $inputstr;  
?>  
假设将此程序命名为 filt.php3o如果你直接执行这个程序o它会一直等待你输入o直到你按下 Ctrl+D 后才会将你的输入资料给印出o我们可以这么执行它 :  
more filt.php3 | filt.php3  
这样的做法是将 filt.php3 这个程序用 more 给秀出并转向给 filt.php3 这个程序ofilt.php3 会不断接受资料(事实上就是 filt.php3 程序代码本身)o最后将其印出。  
我们可以在其中加上过滤 HTML 的功能 :  
#!/usr/local/bin/php -q  
<?  
$fp=fopen("/dev/stdin","r");  

while(!feof($fp)) {  
$c=fgetc($fp);  
$inputstr=$inputstr.$c;  
};  

fclose($fp);  

$inputstr=ereg_replace("<([^<>]*)>","",$inputstr);  

echo $inputstr;  
?>  
假设将此程序命名为 filt2.php3o如此一来便完成了过滤功能o不信请拿个 HTML 档来试试看 :  
more xxx.html | filt2.php3  
你便会看到删除了 HTML TAG 的文件了。  
结论  
PHP 拿来当 Shell Script 事实上相当地好用o原因是 PHP 本身很好学o而且它又支持了各种数据库o当你已经经常拿 PHP 来设计你的网站之后o绝对不太喜欢再使用其它的 Shell Script 语言来处理其它必须非网页的部份o这时候拿 PHP 来当做 Shell Script 的好处就会显现出来了o你可以以一贯的方式来发展整个系统o而不必一下要用 PHP一下又用 Perl/Python 或是 C。

欢迎大家阅读《Shell Script方式的PHP(转) 这种方式_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Shell Script方式的PHP(转) 这种方式_php

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址