PHP命令执行的函数

news2024/11/19 1:42:30

在做面试题的时候发现,自己对PHP命令执行的函数的了解并不是很全面,就想这去学习一下。我也在网上找到了许多的资料,在这里我就相当于一个总结吧。

system();

System()函数的主要功能是在系统权限允许的情况是执行系统命令,windows系统和Linux系统都可以执行,Windows系统下可执行可执行文件(.exe、.bat等),也可执行cmd命令,Linux下用途更广,因为Linux系统就是基于命令行的,如基本的ls、cp、rm等

system('ls');

exec();

exec()函数可以执行系统命令, 但它不会直接输出结果, 而是将执行的结果保存到数组中

exec( 'ls' , $result );    
        参数1: 字符串类型,需要执行的系统命令
        参数2: 数组类型,保存系统命令的执行结果
print_r($result);    //输出执行结果

exec( 'ls' , $result );
print_r($result);

shell_exec();

shell_exec()函数可以执行系统命令, 但它不会直接输出执行的结果, 而是返回一个字符串类型的变量来存储系统命令的执行结果, 在参数中传递需要执行的系统命令即可

echo shell_exec('ls');

passthru(); 

passthru()函数可以执行系统命令, 并将执行结果输出到页面中, 与system()函数不同的是, 它支持二进制的数据, 更多的用于文件, 图片等操作, 使用时直接在参数中传递字符串类型的系统命令即可 

passthru('ls');

 popen();

popen()函数可以执行系统命令, 但不会输出执行的结果, 而是返回一个资源类型的变量用来存储系统命令的执行结果, 需要配合fread()函数来读取命令的执行结果

$result = popen( 'ls' , 'r' );
参数1:字符串类型,需要执行的命令
参数2:字符串类型,模式
返回值:资源类型,命令执行的结果
echo fread( $result , 100 );
参数1:资源类型,需要读取的文件指针
参数2:int类型,读取n个字节
返回值:字符串类型,读取的文件内容

echo fread(popen('ls','r'),100);

反引号`` 

反引号可以执行系统命令, 但它不会输出结果, 而是返回一个字符串类型的变量, 用来存储系统命令的执行结果, 可单独使用, 也可配合其他命令执行函数使用来绕过参数中的过滤条件

echo `ls`;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【服务器数据恢复】EMC存储Zfs文件系统下raid5数据恢复案例

服务器存储数据恢复环境: 某公司一台EMC存储,12块硬盘组成raid5,2块热备盘; Zfs文件系统。 服务器存储故障: 硬盘故障导致存储崩溃。 服务器存储数据恢复过程: 1、对故障存储所有硬盘进行物理故障检测&…

详细软件著作权的申请

一,申请注册账号并进行实名认证 在中国版权保护中心官网注册账号。 我是自己申请的所以选择的个人,这里根据实际情况进行选择后注册。 注册后进行实名认证(3-7个工作日人工会进行审核,所以每个著作权人都要提前注册并进行实名认证…

论文投稿指南——中文核心期刊推荐(地球物理学)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

【电商】电商后台---商品上架前的最后准备

电商后台相关模块进行维护后,离商品上架越来越近。 在供应商、合同、商品、价税等都维护完成后,采购部创建采购单,离商品可以上架销售越来越近了。 本篇再接着梳理一下商品销售前的最后准备工作(没考虑促销)&#xff…

P1111 修复公路

题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问…

Python-123练习-04简单分支

文章目录1. 判断闰年2. 今年多少天3. 今天是第几天4. 判断奇偶数5. 计算整数 n 的阶乘6. 判断是否直角三角形7. 判断三角形并计算面积8. 出租车计费9. 一元二次方程求根10. 个税计算器11. 分期付款计算器12. 字符大小写转换1. 判断闰年 描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪…

学习HTTP协议,这一篇就够啦

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

Elasticsearch:使用 Node.js 将实时数据提取到 Elasticsearch 中(一)

Elasticsearch 是一个强大的 RESTful 搜索和分析引擎,能够处理越来越多的用例。 它将集中存储你的数据,以实现闪电般的快速搜索、微调相关性以及可轻松扩展的强大分析。 关于如何使用 Elastic Stack(又名 ELK 堆栈)将数据摄取到 E…

【C++编程调试秘籍】| 总结归纳要点(上)

文章目录一、编译器是捕捉缺陷的最好场合1 如何使用编译器捕捉缺陷二、在运行时遇见错误该如何处理1 该输出哪些错误信息2 执行安全检查则会减低程序效率,该如何处理呢3 当运行时遇到错误时,该如何处理四、索引越界1 动态数组2 静态数组3 多维数组5 指针…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的深度学习模型

目录给我推荐20个比较流行的nlp模型给我推荐20个比较流行的计算机视觉模型给我推荐20个比较流行的图像分类模型给我推荐20个比较流行的人脸识别模型给我推荐20个比较流行的实体识别模型给我推荐20个比较流行的语言识别模型给我推荐20个比较流行的激光雷达3D点云模型给我推荐20个…

计算机网络的一些常识

序 小白,啥也不会,所以要学习常识 快速总览 这个视频按照数据链路层——网络层——传输层——应用层的顺序,自下向上介绍的。虽然只有30分钟,但是挺全的,密度挺高的,而且小白友好。 计算机网络 Compute…

python学习|第一天

文章目录1.输出函数print2.浮点数输出3.数据类型转换4.运算符优先级5.列表对象list1.输出函数print #输出数字,直接输出 print(2023) print(2023.1)#输出字符串,要加单引号或者双引号(实际效果都是一样的),输出后自动换行 print(hello 2023)…

华为CE系列和S系列交换机堆叠配置及mad检测

CE系列交换机堆叠配置: 第一台交换机配置: system-view immediately #不用每次都输入 commit提交了 sysname sw1 stack stack member 1 priority 105 stack member 1 domain 10 quit inter stack-port 1/1 port member-group inter 10GE 1/0/1 dis st…

使用Helm部署Wikijs

使用 Helm 部署 Wiki.js 📚️ 参考文档: Wiki.js 官方文档 - 安装 - Kubernetes Wiki.js 使用 Helm 安装 Wiki.js 官方文档 - 安装 - 侧加载 官方教程 Kubernetes 开始使用 Helm Chart 在 Kubernetes 上安装 先决条件 Kubernetes 集群HelmPostgreSQL 数据库 ❗…

实习------数据库进阶

B树索引 什么是索引? MySQL官方对索引的定义为:索引就是用于实现数据的快速检索,由数据表中的一列或多列组合而成,索引实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。索引的实现通常使用B树及其变种B树…

2022年终回顾与总结:螃蟹走路-冲,撞

工作赚钱&#xff0c;养家糊口 << 2022年对地球上的人类来说&#xff0c;肯定是刻骨铭心的纪元。对于微小的个人而言&#xff0c;感受是真真切切的。固然全球疫情危害了劳苦大众&#xff0c;但家庭给我的触动却是直接和深刻的。 这一年的轨迹被6月的一刀切成两片。上半年…

深度学习——序列模型(笔记)

1.序列数据&#xff1a; ①现实生活中有很多数据是有时序结构&#xff0c;比如电影的评分随时间的变化而变化。 ②统计学中&#xff0c;超出已知观测范围进行预测是外推法&#xff0c;在现有的观测值之间进行估计是内插法 2.统计工具&#xff1a;处理序列数据选用统计工具和新…

第一章:Mybatis与微服务注册

目录 一、SpringBoot整合MybatisPlus 创建自动生成代码子模块 创建商品服务子模块 二、SpringBoot整合Freeamarker 三、SpringBoot整合微服务&gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…

安装包部署prometheus+Grafana+node_exporter

部署prometheus 在192.168.11.141服务器操作 下载prometheus安装包 wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 下载prometheus安装包 tar xvf prometheus-2.32.1.linux-amd64.tar.gz -C /usr/local…

OSPF的工作原理与性能优化

OSPF的3张表 OSPF的工作过程分为3个大步骤&#xff0c;分别是形成邻居关系&#xff0c;形成邻接关系&#xff0c;计算路由 OSPF建立邻居&#xff0c;收集LSA&#xff0c;收集完成形成邻接 用收集到的LSA&#xff0c;作为原材料&#xff0c;计算路由 完成这3大步骤&#xff0c;…