All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
SQL Server开发人员应聘常被问的问题_[SQL Server教程]
通过缓存数据库结果提高PHP性能_[PHP教程]
扩展LINQ,to,SQL:使用Lambda,Expression批量删除数据_[Asp.Net教程]
SQL循序渐进(8)删除记录_[SQL,Server教程]
ASP.NET2.0中Tabs的简单实现_[Asp.Net教程]
网页特效:在任何位置显示html菜单_JavaScript技术_编程技术
SQL循序渐进(21)更多的子查询_[SQL,Server教程]
.NET自动字符编码识别程序库,NChardet_[Asp.Net教程]
visual c++中调试窗口(Watch窗口)
圣殿骑兵PHP,2007年Web开发技术预言_php资料_编程技术
Reading number is top 10 pictures
传奇套装
一万二一支的万珂,用得真心肉疼。
寒流来了
The household of rural style is designed
好身材能把衣服穿出3D效果
Photographed the passion of the clients and prostitutes in the sex trade picture1
9.3阅兵全景图4-陸海空现代化兵种方阵梯队
NeedWallpaper6
Wild animals melee moment of life and death1
运动的范冰冰3
Download software ranking
Unix video tutorial14
Boxer Classic video1
Popkart Cracked versions Mobile phone games
Photoshop 8.0图象编辑软件
Boxer vs Yellow5
asp.net技术内幕
Unix video tutorial6
美女写真3
1400篇各类破解文章
尖东毒玫瑰B
aaa published in(发表于) 2013/12/27 19:52:28 Edit(编辑)
PHP也可以当成Shell,Script进行使用_php资料_编程技术

PHP也可以当成Shell,Script进行使用_php资料_编程技术

PHP也可以当成Shell Script进行使用_php资料_编程技术-你的首页-uuhomepage.com
PHP 执行档的安装   
  一般 PHP 作为网页处理语言都是要编译成 Apache 的模块﹐这里当然不么做﹐也因此编译起来很简单﹐只要以 root 的身分进行如下动作 :
  解开 php-3.0.xx.tar.gz
  cd php
  configure
  make
  编译完之后﹐在 php 目录下有一个可执行档﹐档名为 php﹐将它 copy 到 /usr/local/bin 下即可。注意﹐如果档案太大﹐可以使用 strip 指令将 php 的方式将不必要的信息去除﹐这样档案就会小得多了。
  第一个程序
  开始撰写我们的第一个 PHP Shell Script 程序﹐这个例子印出 "Hello world !" :
  #!/usr/local/bin/php -q
  echo "Hello, world !";
  ?>
  注意到 PHP 原本是应用在网页应用的﹐因此它内定会送出 HTML 的 HEADER﹐但是在此我们是要将 PHP 用作 Shell Script﹐"-q" 就是表示不要送出 HEADER 的意思﹐你可以试试看不加上 -q 的显示结果。
  在这个例子中﹐/usr/local/bin/php 是表示要执行 /usr/local/bin/ 下的 PHP﹐因为我们刚才将它装在该处。echo 指令将 "Hello, world !" 印出﹐其中的 "" 字符是换行字符。
  注意到在将这个程序存成档案后﹐须将其 chmod 成为可执行属性(chmod +x 文件名)﹐然后才能执行喔。
  进阶使用 I
  有时候我们需要在程序执行时﹐送进一些参数﹐比如说 ls 这个指令﹐后面可以加上 -l 参数﹐PHP Shell Script 一样也有支持这样的用法﹐有两个特殊的变量 : $argc 记录着后面送入参数的个数﹐$argv[] 数组参数存着的则是参数的内容。比如说我现在要设计一个算两个数字总和的程序 :
  #!/usr/local/bin/php -q
  $sum=0;
  $sum=$sum+$argv[1]+$argv[2];
  echo $sum;
  ?>
  假设将此程序命名为 sum.php3﹐则执行 sum.php3 1 2 按下 enter 则会印出 3。
  如果要算出不特定个数的参数和﹐那么就得要用到 $argc 这个特殊变量了 :
  #!/usr/local/bin/php -q
  $sum=0;
  for ($t=1;$t<=$argc;$t++)
  $sum=$sum+$argv[$t];
  echo $sum;
  ?>
  假设将此程序命名为 bigsum.php3﹐则执行 bigsum.php3 1 2 3 4 5 按下 enter 则会印出 15﹐执行 bigsum.php3 1 2 3 4 5 6 按下 enter 则会印出 21。
  有时候我们需要在程序执行中输入资料﹐但是 PHP 原本就是用于网页设计﹐而网页上的资料输入自然都是用 FORM 的方式来输入﹐所以这将 PHP 作为 Shell Script 时问题就来了﹐好在 PHP 有提供了开文件功能﹐而在 Linux/Uinx 之下﹐输入(input)这件事原本就可以用开档的方式来完成﹐我们要开启的是 /dev/stdin 这个设备档(stdin 是表示 standard input 的意思)﹐程序如下 :
  #!/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 的资料﹐程序执行到这行便会停下来等待我们的输入﹐当我们输入完按下 enter 之后﹐程序就会将刚才我们输入的资料给印出来了。
  进阶使用 II
  虽然已经可以处理输入﹐但是这样的功能显然还是太简单﹐无法应付更大的应用﹐比如说我需要一个功能是将一串资料流(data stream)中的 HTML 给去除﹐这时便需要完整地处理输出输入转向的能力﹐我们可以先设计程序如下 :
  #!/usr/local/bin/php -q
  $fp=fopen("/dev/stdin","r");
  while(!feof($fp)) {
  $c=fgetc($fp);
  $inputstr=$inputstr.$c;
  };
  fclose($fp);
  echo $inputstr;
  ?>
  假设将此程序命名为 filt.php3﹐如果你直接执行这个程序﹐它会一直等待你输入﹐直到你按下 Ctrl+D 后才会将你的输入资料给印出﹐我们可以这么执行它 :
  more filt.php3 | filt.php3
  这样的做法是将 filt.php3 这个程序用 more 给秀出并转向给 filt.php3 这个程序﹐filt.php3 会不断接受资料(事实上就是 filt.php3 程序代码本身)﹐最后将其印出。
  我们可以在其中加上过滤 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.php3﹐如此一来便完成了过滤功能﹐不信请拿个 HTML 档来试试看 :
  more xxx.html | filt2.php3
  你便会看到删除了 HTML TAG 的文件了。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.