如何利用PHP的功能执行Linux系统命令? 让应届毕业生小编告诉你如何使用PHP执行Linux系统命令功能。 希望对您有所帮助。
PHP如何执行Linux系统命令函数
系统功能
说明: 执行外部程序并显示输出数据。
句子模式: stringsystem(stringcommand,int[return_var]);
返回值:字符串
详细介绍:
该函数类似于C语言中的函数system(),用于执行指令并输出结果。 如果return_var参数存在,则return_var中将填写执行命令后的状态。 另外值得注意的是,如果需要处理用户输入的数据,但又想防止用户玩花样来破解系统,可以使用EscapeShellCmd()。 如果 PHP 以模块化方式执行,则该函数将在每行输出后手动更新 Web 服务器的输出缓冲区。 如果需要返回完整的字符串php执行cmd命令,并且不想经过任何必要的其他中间输出接口,可以使用 PassThru()。
示例代码:
代码如下所示:
<?php
$last_line=系统('ls',$retval);
echo'输出的最后一行:'.$last_line;
回声'
返回值:'.$retval;
执行函数
描述:执行外部程序。
语句模式: stringexec(stringcommand,string[array],int[return_var]);
返回值:字符串
详细介绍:
该函数执行外部程序或外部指令输入的命令。 它的返回字符串只是外部程序执行后返回的最后一行; 如果需要完整的返回字符串,可以使用 PassThru() 函数。
如果参数数组存在,该命令会将数组添加到参数中执行。 如果不想处理数组,可以在执行 exec() 之前调用 unset()。 如果return_var和数组参数同时存在,则return_var中将填写命令执行后的状态。
值得注意的是,如果需要处理用户输入的数据,防止用户玩花样破解系统,可以使用EscapeShellCmd()。
示例代码:
代码如下所示:
<?php
echoexec('whoami');
popen函数
描述:打开文件。
句子模式:intpopen(stringcommand,stringmode);
返回值:整数
详细介绍:
该函数执行打开文件的命令,并通过管道方式处理文件。 用该函数打开的文件只能是双向的(只读或只写),但必须用pclose()关闭。 您可以使用 fgets()、fgetss() 和 fputs() 进行文件操作。 如果在打开文件期间发生错误,则返回错误值。
示例代码:
代码如下所示:
$fp=popen("/bin/ls","r");
PHP监控linux服务器负载
在实际项目的应用中,由于现实的种种条件,使用PHP来实现服务器负载监控将是一种更加灵活的形式。
由于WebServer和PHP的实现方式的限制,我们在真实环境中很难使用PHP来调用Linux中一些需要root权限才能执行的程序。 对此,我在网上找到了另一种方法来规避这个限制。 首先编写一个C程序来传输系统命令,然后使用PHP来执行该C程序。
程序
首先写入ac文件php执行cmd命令,如/usr/local/ismole/wc
代码如下所示:
#包括
#包括
#包括
#包括
intmain()
uid_tuid,euid;
//注意获取当前uid
uid=getuid();
//note获取当前euid
euid=geteuid();
//注意交换这两个id
if(setreuid(euid,uid))
perror(“setreuid”);
//注意执行即将执行linux系统命令
系统(“/usr/bin/w”);
返回0;
编译文件gcc-ow-Wallw.c,在当前目录下生成程序w。 更改该程序的所有者 chmodu+s./w。
PHP执行
该文件的内容如下。 如果放在web目录下,访问时会输出当前服务器负载。
代码如下所示:
/*
更多&原创PHP框架