‘壹’ 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.ini开启EXEC函数怎么开启
1、首先打开php.ini文件,一般默认放在C盘windows目录下。
‘叁’ PHP运行EXEC文件
可以,但需要系统权限,和启用PHP的exec函数支持,php配置默认是禁用的。
使用方法:
$str
=
exec("cmd
命令");
$str
返回执行命令后所输出的字符。
详细说明可以查询php手册
‘肆’ PHP 调用 exec命令 所有返回值的含义
exec()返回最后一行结果
$command 外部命令
$str_res 可选,每行执行的结果组成的数组
$str_r 可选,执行的状态,0为成功,1为失败
‘伍’ 如何配置服务器的php,使得能成功运行exec函数
如果是命令行使用的话,直接运行即可,如果是apache使用的话,需要重启apache,如果是nginx配合使用的话,需要重启php-fpm,exec函数执行命令并不需要安全目录,只要有执行权限就可以执行。
‘陆’ 怎么用php命令执行php代码
PHP执行命令的四种方法
方法一:使用exec函数执行系统外部命令
原型:function exec(string $command,array[optional] $output,int[optional]
$return_value)
<?
exec("dir",$outPut);
print_r($outPut);
?>
说明:列出和PHP执行文件同级目录下的所有目录及文件信息。
知识点:exec执行系统外部命令时不会输出结果,而是返回结果的最后一行,如果你想得到结果你可以使用第二个参数,让其输出到指定的数组,此数组一个记录代表输出的一行,即如果输出结果有20行,则这个数组就有20条记录,所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
方法二:使用system函数执行系统外部命令
原型:function system(string $command,int[optional] $return_value)
1
2
3
<?
system("dir");
?>
知识点:system和exec的区别在于system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
方法三:使用函数passthru执行系统外部命令
原型:function passthru(string $command,int[optional] $return_value)
知识点:passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。
方法四:反撇号`(和~在同一个键)执行系统外部命令
1
2
3
<?
echo `dir`;
?>
知识点:在使用这种方法执行系统外部命令时,你要确保shell_exec函数可用,否则是无法使用这种反撇号执行系统外部命令的。
‘柒’ PHP 调用 exec命令 所有返回值的含义
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中执行exec命令
exec 或者 system 都可以调用cmd 的命令
直接上代码:
复制代码 代码如下:
< ?php
/** 打开windows的计算器 */
exec('start C:WindowsSystem32calc.exe');
/** php生成windows的批处理文件后,再执行这个批处理文件*/
$filename = 't.bat';
$somecontent = 'C:
';
$somecontent .= 'cd "C:/Program Files/MySQL-Front"';
$somecontent .= '
start MySQL-Front.exe';
if (!$handle = fopen($filename, 'w')) {
echo "不能打开文件 $filename";
exit;
}
/** 首先要确定文件存在并且可写*/
if (is_writable($filename)) {
/** 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方
将$somecontent写入到我们打开的文件中 。*/
if (fwrite($handle, $somecontent) === FALSE) {
echo "不能写入到文件 $filename";
exit;
}
echo "成功地将 $somecontent 写入到文件 $filename";
fclose($handle);
} else {
echo "文件 $filename 不可写";
}
exec($filename);
?>
‘玖’ PHP exec() 运行另一个php文件,不等待返回值
可以后台运行,但是建议使用popen和pclose代替exec。同时需要注意php是否添加了环境变量。
<?php
//windows和linux下后台执行方式
$cmd='php2.php';
if(strtoupper(substr(PHP_OS,0,3))=='WIN')
{
pclose(popen('start/B'.$cmd,'r'));
}else
{
pclose(popen($cmd.'>/dev/null&','r'));
}