PHP执行linux命令常用函数汇总


Posted in PHP onFebruary 02, 2016

一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。

1,exec函数

<?php 
$test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令
exec($test,$array); //执行命令
print_r($array);
?>

返回结果如下:

[root@krlcgcms01 shell]# php ./exec.php 
Array 
( 
[0] => 1001.log 
[1] => 10.log 
[2] => 10.tar.gz 
[3] => aaa.tar.gz 
[4] => mytest 
[5] => test1101 
[6] => test1102 
[7] => weblog_2010_09 
)

2,system函数

<?php 
$test = "ls /tmp/test";
$last = system($test);
print "last: $last\n";
?>

返回结果:

[root@krlcgcms01 shell]# php system.php 
1001.log 
10.log 
10.tar.gz 
aaa.tar.gz 
mytest 
test1101 
test1102 
weblog_2010_09 
last:weblog_2010_09

3,passthru函数

<?php 
$test = "ls /tmp/test";
passthru($test);
?>

4,popen函数

<?php 
$test = "ls /tmp/test";
$fp = popen($test,"r"); //popen打一个进程通道

while (!feof($fp)) { //从通道里面取得东西
$out = fgets($fp, 4096);
echo $out; //打印出来
} 
pclose($fp);
?>

5,proc_open函数

<?php 
$test = "ls /tmp/test";
$array = array(
array("pipe","r"), //标准输入 
array("pipe","w"), //标准输出内容 
array("pipe","w") //标准输出错误 
); 
$fp = proc_open($test,$array,$pipes); //打开一个进程通道
echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为1是输出内容
proc_close($fp);
?>

6,shell_exec函数

<?php 
$test = "ls /tmp/test";
$out = shell_exec($test);
echo $out;
?>

popen,passthru,proc_open,shell_exec的返回结果如下:

[root@krlcgcms01 shell]# php test.php 
1001.log 
10.log 
10.tar.gz 
aaa.tar.gz 
mytest 
test1101 
test1102 
weblog_2010_09

我能发现的就这几个函数,能执行linux下的命令,我想应当还有吧,欢迎大家补充。

PHP 相关文章推荐
PHP生成HTML静态页面实例代码
Aug 31 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
php类自动加载器实现方法
Jul 28 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 PHP
PHP rsa加密解密算法原理解析
Dec 09 PHP
必须收藏的23个php实用代码片段
Feb 02 #PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 #PHP
PHP自带方法验证邮箱是否存在
Feb 01 #PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 #PHP
实例详解PHP中html word 互转的方法
Jan 28 #PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 #PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 #PHP
You might like
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
ucenter通信原理分析
2015/01/09 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
关于this和self的使用说明
2010/08/01 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
简单实现js浮动框
2016/12/13 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
业务经理岗位职责
2013/11/11 职场文书
开办化妆品公司创业计划书
2013/12/26 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
大课间活动实施方案
2014/03/06 职场文书
企业党员一句话承诺
2014/05/30 职场文书
社区活动总结范文
2015/05/07 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL