爱飞 发表于 2015-2-4 00:25:37

PHP网站制作之[转]PHP也能够成Shell Script

exit来实现结束后面的PHP语句的执行,缩小调试范围,特别是数据库交互的程序,先输出个SQL语句看看,对了,再分析怎么会插入/删除不成功呢?这样对查错很有帮助。   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+$argv;
   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 习尚已相当昌盛o本站 LinuxFab 即是完整以 PHP 搭配 MySQL 开展起来的o现实上 PHP 的妙用还有良多o无机会往后再引见o假如读者们需求 PHP 的相干信息o接待到本站上的 PHP 服装论坛 介入更多会商。
   
出自:http://linuxfab.cx   学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。

活着的死人 发表于 2015-2-4 13:06:27

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

第二个灵魂 发表于 2015-2-7 19:58:40

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

不帅 发表于 2015-2-23 09:25:23

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

谁可相欹 发表于 2015-2-28 07:32:24

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

再见西城 发表于 2015-3-2 11:21:17

当然这种网站的会员费就几十块钱。

仓酷云 发表于 2015-3-7 06:00:15

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

山那边是海 发表于 2015-3-11 01:07:04

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

愤怒的大鸟 发表于 2015-3-12 19:45:40

兴趣是最好的老师,百度是最好的词典。

因胸联盟 发表于 2015-3-20 01:58:50

做为1门年轻的语言,php一直很努力。

莫相离 发表于 2015-3-20 11:49:10

写的比较杂,因为我也是个新手,不当至于大家多多指正。

金色的骷髅 发表于 2015-4-1 05:41:56

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

admin 发表于 2015-4-1 22:11:05

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

蒙在股里 发表于 2015-4-13 06:14:26

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

兰色精灵 发表于 2015-5-10 20:30:53

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

小女巫 发表于 2015-6-8 11:52:24

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

飘灵儿 发表于 2015-6-13 04:35:32

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

老尸 发表于 2015-6-14 15:57:36

爱上php,他也会爱上你。

爱飞 发表于 2015-6-30 16:06:09

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

飘飘悠悠 发表于 2015-7-8 06:50:39

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
页: [1]
查看完整版本: PHP网站制作之[转]PHP也能够成Shell Script