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 相关文章推荐
我的论坛源代码(一)
Oct 09 PHP
快速开发一个PHP扩展图文教程
Dec 12 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
php生成动态验证码gif图片
Oct 19 PHP
非常重要的php正则表达式详解
Jan 04 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 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 file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
php blowfish加密解密算法
2016/07/02 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
洗发露广告词
2014/03/14 职场文书
交通安全责任书范本
2014/07/24 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
失职检讨书大全
2015/01/26 职场文书
爱国电影观后感
2015/06/19 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python