首页 > 编程语言 >[php命令执行函数]详解各种php命令执行函数

[php命令执行函数]详解各种php命令执行函数

时间:2024-07-18 18:54:46浏览次数:16  
标签:执行 shell return 函数 system 命令 command output php

如下几种命令执行函数:

目录

system

exc

passthru

shell_exec

反引号``

popen


system

system函数简介:用于执行命令

语法形式:

system(string $command,int $return_var=?)
command:必选参数,字符类型,被system函数执行的命令,如ls

return_var:可选参数,整数类型,如果提供此参数,则command命令执行之后的返回状态会被放置到return_var函数内。返回0表示执行成功,返回1表示执行失败。

示例:

<?php
highlight_file(_FILE_);
$cmd=$_GET["benben"];
if(isset($cmd)){
    system($cmd);
}
?>
system函数默认有回显。

exc

exc(string $command,array $output=?,int $return_var=?)

command:必选参数,被执行的命令

output:可选参数,如果选择 ,就会将执行结果以数组的形式填充到这个变量中

return_var:可选变量,如果选择,就会将命令是否执行成功的结果填入此变量,成功为0,失败为1

如果没有设置output变量,则会回显结果的最后一行,即当作数组处理后的最后一个数组元素。

<?
hightlight_file(_FILE_));
$cmd=$_GET['cmd'];
exc($cmd,$array);
print_r($array);
?>

passthru

passthru(string $command,int &$return_var=?)

command:必选参数,被执行的命令

return_var:可选参数,整数类型,&表示可以通过引用的方式来在函数执行结束之后修改这个值,如果提供此参数,则command命令执行之后的返回状态会被放置到return_var函数内。返回0表示执行成功,返回1表示执行失败。

类似于system

<?
highlight_file(_FILE_);
$cmd=$_GET['cmd'];
echo "This is test!!!"
passthru($cmd);
?>

shell_exec

shell_exec(string $cmd)

cmd:需要执行的命令

shell_exec会将命令执行的输出返回成一个字符串,这里注意,不是回显,返回跟回显是不一样的,返回意味着将整个函数会被当作一个字符串,而想要使用它则必须直接显示,如

echo shell_exec('ls');

或者用变量承接它,从而在后续继续使用,如

$output = shell_exec('ls -l');
echo "<pre>$output</pre>";    #此处的<pre>意思是将输出内容以原始形式显示,不会去除空格,换行等

这种方式能够让我们在后续代码中更加方便的调用之前的结果。

反引号``

与shell_exec一模一样

举例

$output = `ls -l`;
echo "<pre>$output</pre>";

$output = shell_exec('ls -l');
echo "<pre>$output</pre>";

是等价的。

popen

其操作跟文件操作类似,此函数会执行命令并且返回一个文件指针(实际上文件并不存在)。如下

resource popen ( string $command , string $mode )

command:要执行的shell命令,如ls

mode:打开文件的模式,可以是'r'(读取模式),也可以是'w'(写入模式)

返回值:

如果执行成功,则返回一个文件指针resource,用于后续操作。

如果失败,则返回false。

示例用法

$handle = popen('ls -l', 'r');
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle);
        echo $buffer;
    }
    pclose($handle);
}

标签:执行,shell,return,函数,system,命令,command,output,php
From: https://blog.csdn.net/Lhy1963245411/article/details/140526730

相关文章

  • docker镜像常用命令
    1.使用"ls"查看镜像列表dockerimagels查看现有的镜像列表。dockerimagels-q仅查看镜像的ID信息。dockerimagels-a查看所有的镜像,包括中间镜像,尤其是在后期查看基于dockerfile的时候很有用呢2.使用"pull"拉取镜像dockerimagepullbus......
  • 1.java编写命令
    #六java编写命令**第一步:先写注释(需求、思路),进行需求分析和设计**```需求:定义一个helloword小程序思路: 1.通过class关键字定义一个类,将代码编写到该类中 2.为了保证该类的独立运行,在类定义个主函数,格式publicstaticvoidmain{String[]args} 3.保存成一个扩展名为ja......
  • 5.java命令程序介绍
    五java命令程序介绍 javac 编译工具:将原文件编译成计算机可以识别的语言 格式: javachello-world.java 执行完该命令后,在源文件的目录下会生成一个新的class文件,称之为运行文件 java 调用虚拟机(JVM)运行java的class文件(可执行文件名称) 格式: java+字节码文件......
  • Linux基础命令
    1.查询目录中内容:ls2.查看日志:tail -f -n 日志文件名选项: -f:显示最新的追加打印的内容 -n 行数如:tail-f-n1000 a.log 3.查看所有正在运行的进程: ps-ef  如: 查看到进程号以后 ps-ef|grepjava 4.强制杀死进程:killpid......
  • top 命令
     选项-b:以批处理模式操作;-c:显示完整的治命令;-d:屏幕刷新间隔时间;-I:忽略失效过程;-s:保密模式;-S:累积模式;-i<时间>:设置间隔时间;-u<用户名>:指定用户名;-p<进程号>:指定进程;-n<次数>:循环显示的次数;-H:所有线程占用资源情况。 top交互命令在top命令执行过程中可以使用的一些交互命令。......
  • 基于SpringBoot的宠物领养系统-07863(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP
    摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对宠物领养系统......
  • 虚函数
    多态(polymorphism)是面向对象编程语言的一大特点,而虚函数是实现多态的机制。其核心理念就是通过基类访问派生类定义的函数。多态性使得程序调用的函数是在运行时动态确定的,而不是在编译时静态确定的。使用一个基类类型的指针或者引用,来指向子类对象,进而调用由子类复写的个性化的虚......
  • 【web]-php反序列化-复杂1(转)
    转自:PHP反序列化-CSDN博客反序列化漏洞是基于序列化和反序列化的操作,在反序列化——unserialize()时存在用户可控参数,而反序列化会自动调用一些魔术方法,如果魔术方法内存在一些敏感操作例如eval()函数,而且参数是通过反序列化产生的,那么用户就可以通过改变参数来执行敏感操作......
  • 三角函数
    三角函数学习笔记三角形标准记号三角函数的定义正弦$$\sin(α)=\frac{对边}{斜边}=\frac{a}{c}$$余弦$$\cos(α)=\frac{邻边}{斜边}=\frac{b}{c}$$正切$$\tan(α)=\frac{对边}{邻边}=\frac{a}{b}$$余切$$\cot(α)=\frac{邻边}{对边}=\frac{b}{a}$$正......
  • 母函数与高斯和
    前置知识:单位根(为了偷懒,基本将所有的\(\omega\)都写成了\(w\))CP1我们很经常遇到的一个问题是\(xy~mod~n\)的求解,母函数在处理这样的一些问题时会有效(更优先的是寻求\(xy\)的性质或者利用带余除法)例1设\(p>2\)是素数,\(p\nmidabcd\),满足\(\{\frac{ra}p\}+\{\frac......