会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> PHP编程技巧 >> PHP做Shell语言
 
精华文章
    一个用PHP实现的UBB类  
    为吸引Oracle用户 IBM...  
    用PHP连mysql和oracle...  
    用PHP发邮件  
    在PHP中使用灵巧的体系...  
    使用PHP连接LDAP服务器...  
    PHP中的Java扩展  
    一个简单的PHP投票系统...  
    用PHP写超级简单的发送...  
    用PHP处理多个同名复选...  
    定制php4的session功能...  
    在PHP中实现进程间通讯...  
    用PHP实现文件上传二法...  
    php做柱型图的函数  
    用PHP实现上传的ZIP文...  
    ASP判断文件地址是否有...  
    PHP做Shell语言  
    用PHP动态生成虚拟现实...  
    PHP4.0数组相关函数的...  
    PHP应用提速面面观  
    怎样用PHP来给网页做导...  
    如何用php作线形图的函...  
    用javascript+PHP随机...  
    用phpUnit帮你调试php...  
    将PHP作为Shell脚本语...  
    用PHP调用数据库的存贮...  
    php中分页显示文章标题...  
    PHP生成动态WAP页面  
  更多>>  
   PHP编程技巧
 PHP做Shell语言
    PHP(Personal Hypertext Preprocessor) 近一两年来似乎已经成为Linux/Unix上最广为使用的网页处理语言,方便、功能强大与源代码开放(OpenSource)的特性使得它正逐渐占领传统的CGI,甚至是 MicroSoft ASP(Active Server Page)的市场,很多的web站点用PHP做动态网页处理。 



究其原因,可以总结如下: 

    PHP是OpenSource的软件,基于GPL协议,源代码开放,免费使用,自由发放,这样吸引了大量的人使用,同时也得到了商业公司的支持,特别是在PHP4中,zend为PHP提供了引擎和优化部分,你可以访问http://www.php.net或http://www.zend.com,可以得到更多的信息。 

    PHP本身的语法非常的简单,和C、Perl语言有很大的相似。当我第一次接触PHP时,感觉它简直是Perl的克隆。PHP本身非常简单易懂,同时提供面向对象的处理能力,让新手足以在最短时间内学会。 

    PHP 提供了非常丰富的功能,包含了数学处理、字串处理、网络相关功能、各种数据库的支持、图像处理功能。有很多人为PHP发展提供各式各样的新功能,它的扩性极佳。目前,PHP对Flash提供了较好的支持。 

    PHP很容易与Apache相结合,可以作为Apache的模组来使用,同时,在Apache中设定安装相当简单,也因为Apache目前已经占据了Web Server 全球 60% 的市场,PHP 自然而然成为 Apache 最佳搭配。同时为了提高web服务器的速度,可以把PHP直接编译进Apache,提高web服务的访问、处理速度。 

    PHP的另外的一个功能是:它实际上是可以作为shell script来应用的。PHP作为shell script比其他的shell语言有很大的优势。尤其PHP的数据库的服务功能非常的强大,用户可以方便的访问数据库系统。 



编译PHP让它用来做解释器,本文的操作环境是HappyLinux家用版V1.0,以root身份执行下面的步骤: 

获得PHP的源代码  

    PHP的源代码在http://www.php.net 的网站上可以得到,同时国内的很多的网站上提供改网站的镜像。目前,最新的版本是PHP 4.0.2。 



解开PHP源码包  

tar zxvf php-4.0.2.tar.gz 



编译PHP  

cd php-4.0.2 

configure --with-ftp --with-pgsql 

make 

注意configure的参数看PHP的帮助文件,以便你能更好的配置PHP。 



当编译完成后,在php-4.0.2目录下会生成一个php的文件,将这个文件拷贝到/usr/sbin/cp ./php /usr/sbin 



测试编译的结果  

输入下面的结果到文件test.php中: 

#!/usr/sbin/php 

<?php 

echo “Hello World!\n” 

?> 



保存结果到test.php中并更改文件的属性: 

chmod 777 ./test.php 

执行文件test.php 

./test.php 



这时你能够看见结果: 

X-Powered-By: PHP/4.0.2 

Content-type: text/html 

Hello World! 



    这个结果你可能有些失望,它并不是我们要的全部的结果。因为,PHP主要是做为网页的应用,上面的头两行是输出的HPPT的头,怎样让PHP去掉这两行呢?你仅仅需要在加入参数-q就可以去掉HPPT头: 

#!/usr/sbin/php -q 

<?php 

echo “Hello World!\n” 

?> 



再看一下输出的结果: 

Hello World! 



OK!搞定。下面用PHP做脚本列举一些应用 



用PHP连接数据库  

    PHP提供大量的数据库的函数,几乎所有的数据库PHP提供一套数据库的函数,所以用PHP写脚本,访问数据库是一个很好的主意。下面的例子是用PHP访问postgresql数据库的一个例子: 

#!/usr/sbin/php -q 

<?php 

string=$con=pg_Connect("dbname=test port=5432 host=127.0.0.1 user=postgres\ password=postgres"); 

echo $con."\n"; 

pg_exec($con,"insert into test1 values ('ok',1,1)"); 

pg_close($con); 

?> 



    执行这个脚本,PHP访问数据库test,同时,会向test1表中插入一个记录。有关PHP访问数据库的内容请看相关的数据库函数和数据库的文档手册。 



用PHP做FTP自动上载和下载脚本  

    在PHP3就提供PHP的FTP的函数,用这些函数能够实现文件的自动上载和下载的功能。想要利用PHP提供的FTP函数,必须要在编译PHP时的configure指定参--with-ftp。下面是FTP的例子: 

#!/usr/sbin/php -q 

<?php 

// set up basic connection 

$conn_id = ftp_connect("$your_ftp_server"); 



// login with username and password 

$login_result = ftp_login($conn_id, "$ftp_your_name", "$ftp_your_password"); 



// check connection 

if ((!$conn_id) || (!$login_result)) { 

echo "Ftp connection has failed!"; 

echo "Attempted to connect to $your_ftp_server "; 

die; 

} else { 

echo "Connected to $ftp_server, for your"; 





// upload the file 

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY); 



// check upload status 

if (!$upload) { 

echo "Ftp upload has failed!"; 

} else { 

echo "Uploaded $source_file to $your_ftp_server as $destination_file"; 





// close the FTP stream 



ftp_quit($conn_id); 



?> 



显然利用PHP可以方便的进行网络的文件传输,没有必要写socket程序。 



用PHP处理命令行参数  



    PHP和Perl的相似之处还在于它们们处理的参数的方法是一致的,它们提供变量数组和变量计数器:$ argv [],$ argc。下面的例子是一个打印命令行字串的例子和命令行求和。 



test.php 



#!/usr/sbin/php –q  



<?php 



echo $argv[1]; //注意$ argv []的第一个变量从1开始 



?> 



在命令行下执行:./test.php LegendSoftware 



将打印LegendSoftware 



test1.php 



#!/usr/sbin/php –q 



<?php 



$sum=0; 



for ($i=1;$i<=$argc;$i++) 



$sum=$sum+$argv[$i]; 



echo $sum; 



?> 



执行 test1.php 1 2 3 4 5 回车,则会打印出 15。 



在Console下进行交互  



    程序员知道在Console下进行交互用scanf函数,PHP是为web而设计的语言,用户输入交互通过form中的变量。那么在Console下怎么进行交互呢?答案很简单,用fopen函数打开系统的标准输入设备进行读取。下面的程序实现了这个从标准输入设备上读取字串的功能: 

#!/usr/sbin/php -q 

<? 

$fp=fopen("/dev/stdin","r"); 

echo “Please input a string:” 

$inputstr=fgets($fp,100); 

fclose($fp); 

echo "This string is "; 

echo $inputstr.”\n”; 

?>  
  • 上一篇文章: ASP判断文件地址是否有效
  • 下一篇文章: 用PHP动态生成虚拟现实VRML网页
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有