PHP用于执行Linux系统命令的常用函数用法说明

系统功能
描述:执行外部程序并显示输出数据。
语法:字符串(字符串命令,系统return_var int { });
返回值:字符串

详细介绍:
这个函数是函数系统()在C语言中,它是用来执行指令和输出结果。如果return_var参数存在,执行该命令后填充到return_var.it状态还值得注意的是,EscapeShellCmd()如果你需要处理用户的输入数据和防止用户玩把戏,如果PHP是在一个模块化的方式来执行的,该功能会自动更新Web服务器的输出缓冲存储区,每行输出后,如果你需要一个完整的返回字符串,不想不必要的其他中间输出接口通过,你可以使用PassThru()。


实例代码:
复制代码代码如下所示:
< PHP
last_line美元=系统(' ',用美元);
echo'last线输出:'。last_line美元;
echo'return值:。用美元;
>

exec函数
描述:执行外部程序。
语法:字符串(字符串命令,执行字符串{阵},{ int return_var });
返回值:字符串

详细介绍:
这个函数执行外部程序或命令的输入外部指令,返回的字符串是最后一行返回后的外部程序执行;本()函数可以返回字符串需要使用完整的。

如果参数数组存在,命令将添加数组参数,如果数组不处理,你可以调用unset()在执行exec()。如果双方的return_var和数组两参数存在,执行该命令后填充到return_var状态。

值得注意的是,EscapeShellCmd()如果你需要处理用户的输入数据,防止用户玩把戏用。

实例代码:
复制代码代码如下所示:
< PHP
回声exec('whoami);
>

Popen函数
说明:打开文件。
语法:int Popen(字符串命令字符串模式);
返回值:整数

详细介绍:
这个函数执行文件说明和文件是一个文件在一个管的方式来处理。这个函数打开文件只能单向(只读或只写),必须关闭与Pclose()Fgets(),(),作用是:将内容fgetss()可用于文件操作。如果打开文件错误,返回false值。

实例代码:
复制代码代码如下所示:
<
Popen(FP =美元 /斌/ LS
>


PHP监视Linux服务器的负载。

在实际工程应用中,由于各种情况的实际情况,采用PHP实现服务器负载监控是一种更为灵活的方法。

由于Web服务器和PHP的实现有限,我们很难使用PHP调用Linux中需要root权限的程序。事实上,我找到了另一种从因特网上绕过这个限制的方法。首先,编写一个C程序来调用系统命令,然后使用PHP来执行C程序。

C程序

首先,写一个C文件,如 / usr / / /厕所ismole地方
复制代码代码如下所示:
#包括
#包括
#包括
#包括

主()
{
uid_t UID,euid;

/ /注意获取当前UID
UID = getuid();
/ /注意获取当前euid
euid = geteuid();

注:交换这两个id
如果(setreuid(euid,UID))
perror(setreuid );

执行将执行Linux系统命令。
系统( / usr /斌/ W );
return0;
}

文件GCC O W Wall W. C编译程序,和W会在当前目录下生成。大师Chmod U + S / W的这一计划是改变。
PHP执行

文件的内容如下所示。在Web目录下,Access将输出当前服务器负载。
复制代码代码如下所示:
< PHP
*
更原始的PHP框架
版权所有(C)2007-2008 ismole Inc.

身份:408美元servermonitor.php 2008-12-02美元08:07:40z基米
* /

记录键的验证过程
如果(键)!= $ authkey){
/ /退出(关键错误);
}

last_line美元= exec(/ usr / / /当地ismole W,用美元);

returnarray美元=爆炸(平均负载:
returnstring美元= $ returnarray { 1 };

echo $ returnstring;

根据上面的例子,我们可以用PHP做的任何Linux系统命令我们要执行svn update,服务器监控、备份、恢复、日常维护等。