|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。
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/)。
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 "\n----------------------\n";
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。
基础这个东西,有人问学php需要任何基础不? |
|