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数据缓存技术
Feb 14 PHP
php分页思路以及在ZF中的使用
May 30 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
php文件上传的例子及参数详解
Dec 12 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
YII框架页面缓存操作示例
Apr 29 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
Laravel的加密解密与哈希实例讲解
Mar 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 和 MySQL 时区的一点总结
2008/03/26 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
angular十大常见问题
2017/03/07 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
浅谈python中的变量默认是什么类型
2016/09/11 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
建筑文秘专业个人求职信范文
2013/12/28 职场文书
中学生操行评语
2014/04/24 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
公司2014年度工作总结
2014/12/10 职场文书
人生遥控器观后感
2015/06/11 职场文书
交通安全教育主题班会
2015/08/12 职场文书
python绘制箱型图
2021/04/27 Python
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL
mysql函数之截取字符串的实现
2022/08/14 MySQL