| 
| 技术资料  > PHP技术 > 经典文章 : PHP 中执行系统外部命令 |  
PHP 中执行系统外部命令 March 23,2004 |  
PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功倍。  
 
 
 
那么,是否可以在PHP脚本中调用外部命令呢?如果能,如何去做呢?有些什么方面的顾虑呢?相信你看了本文后,肯定能够回答这些问题了。  
 
 
 
是否可以?  
 
 
 
答案是肯定的。PHP和其它的程序设计语言一样,完全可以在程序内调用外部命令,并且是很简单的:只要用一个或几个函数即可。  
 
 
 
前提条件  
 
 
 
由于PHP基本是用于WEB程序开发的,所以安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安全模式。如果运行在安全模式下,那么PHP脚本中将受到如下四个方面的限制:  
 
 
 
执行外部命令  
 
在打开文件时有些限制  
 
连接MySQL数据库  
 
基于HTTP的认证  
 
在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用safe_mode_exec_dir指令,或在编译PHP是加上--with-exec-dir选项来指定,默认是/usr/local/php/bin。  
 
 
 
如果你调用一个应该可以输出结果的外部命令(意思是PHP脚本没有错误),得到的却是一片空白,那么很可能你的网管已经把PHP运行在安全模式下了。  
 
 
 
如何做?  
 
 
 
在PHP中调用外部命令,可以用如下三种方法来实现:  
 
 
 
1) 用PHP提供的专门函数  
 
 
 
PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。  
 
 
 
system()  
 
 
 
原型:string system (string command [, int return_var])  
 
 
 
system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。  
 
 
 
例子:  
 
 
 
 |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved