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 相关文章推荐
PHP4实际应用经验篇(9)
Oct 09 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
PHP 可阅读随机字符串代码
May 26 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
yii数据库的查询方法
Dec 28 PHP
PHP中关于php.ini参数优化详解
Feb 28 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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
php计算title标题相似比的方法
2015/07/29 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
jQuery事件用法详解
2016/10/06 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python datetime时间格式化去掉前导0
2014/07/31 Python
python实现统计代码行数的方法
2015/05/22 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
公司行政经理岗位职责
2013/12/24 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
委托书格式要求
2015/01/28 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python