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分页显示制作详细讲解
Oct 09 PHP
社区(php&amp;&amp;mysql)三
Oct 09 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php懒人函数 自动添加数据
Jun 28 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
php+ajax 文件上传代码实例
Mar 18 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 Directory 函数的详解
2013/03/07 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
javascript  删除select中的所有option的实例
2017/09/17 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
python的绘图工具matplotlib使用实例
2014/07/03 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
大一自我鉴定范文
2013/10/04 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
工程质量保证书
2015/05/09 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
python pygame入门教程
2021/06/01 Python
python神经网络ResNet50模型
2022/05/06 Python