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;)详解
Nov 20 PHP
Admin generator, filters and I18n
Oct 06 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
php的大小写敏感问题整理
Dec 29 PHP
深入apache host的配置详解
Jun 09 PHP
php+highchats生成动态统计图
May 21 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
laravel实现于语言包的完美切换方法
Sep 29 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 中的一些经验积累
2006/10/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
Python最长公共子串算法实例
2015/03/07 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
Python基于WordCloud制作词云图
2019/11/29 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
财务学生的职业生涯发展
2014/02/11 职场文书
高考寄语大全
2014/04/08 职场文书
授权委托书怎么写
2014/09/25 职场文书
创先争优宣传标语
2014/10/08 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
环保守法证明
2015/06/24 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
python如何查找列表中元素的位置
2022/05/30 Python