首页
新闻
UniX技术
数据库
经验交流
PHP
Linux考试认证
首页
>
PHP
在PHP中执行系统外部命令
时间:2009-07-13 14:42:56 作者:chinaitlab
我要投稿
Linux初探欢迎您的投稿,投放方法请点击
这里
查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部......
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()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。
例子:
<?
system("/usr/local/bin/webalizer/webalizer");
?>
exec()
原型:string exec (string command [, string array [, int return_var]])
exec()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二个参数时,才可以用第三个参数,用来取得命令执行的状态码。
1
/
3
1
2
3
下一页
尾页
如果您需转载 在PHP中执行系统外部命令,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
相关文章
利用tr命令轻松实现大小写转换
系统工程师有时候在系统维护的时候,需要将某个文件中的内容进行大小写的转
Apache下,*.php.rar格式的文件被当成php执
一直以来都觉得.rar格式的文件被访问的话,会以附件的方式打开。但是*.php.
PHP+TEXT留言本(五)
现在我们来讲一下reply.php的代码:---------------------------------//r
数据库的可伸缩性的探索
数据库的可伸缩性的探索Author:skateTime:2009-5-30数据库在当今社会越来越
ORACLE正则解决初使化数据格式不一致
在初使化用户基础数据时会出现一些数据格式不正确的情况。。如: 2000-1-1=
如何分别全角和半角以避免乱码
function ChgTitle($title)
{ $length = 46;
if (strlen($title)>$leng
如何做到多筆資料的同步
一次叫出多筆資料,然後在同一個網頁中「逐一」「分別」做不同的處理,最後「
国家、城市等按照字母排序,但个别城市排在最
在一些站点和客户端程序的下拉框里,选择国家等数据时,大部分都是按照字母顺
UTF8下的中文PHP编程
前言:说实话,凉鞋也觉得 UTF8 是好东西……毕竟同屏显示中日韩对东亚人的吸
PHP做Web项目的优缺点
PHP的优点:1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并
如何用php作线形图的函数
很高兴大家对PHP如此的情有独钟!
下面就给大家介绍php作线形图的函数: /*
ZendCache使你的站点飞起来
薛启康(xqk@163.net) 商业应用的网站,其传输效率是十分重要的,通常在一些电
交叉表查询中的累计
交叉表查询无疑有使用中可以很方便的进行数据的分析处理。你可以通过向导
今天是圣诞节,发出2个圣诞皮肤
在这个欢乐的时刻,让我们把桌面也变得有气氛一些吧~Christmas time 是一款
Linux服务器:邮件系统原理
究竟什么是邮件服务器呢?邮件服务器提供了邮件系统的基本结构,包括邮件传输
PHP函数使用入门
PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 700 个内建的函数。
栏目热门
PHP的PDO类教程
PHP程序为什么"不适用"大型系统的9大原因
PHP Socket编程起步
使用session_set_save_handler函数重载SESS
国外主流PHP框架比较
站内搜索:
Linux
高级搜索
Powered by
Linux初探
© 1999-2009
RSS