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在线打包程序源码
Jul 27 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
理解PHP中的stdClass类
Apr 18 PHP
php制作文本式留言板
Mar 18 PHP
php实现递归的三种基本方式
Jul 04 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
PHP实现APP微信支付的实例讲解
Feb 10 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和javascript之间变量的传递实现代码
2012/12/19 PHP
php常量详细解析
2015/10/27 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
vue组件学习教程
2017/09/09 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
成品仓管员岗位职责
2013/12/11 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
社区活动策划方案
2014/08/21 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
学校学期工作总结
2015/08/13 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技