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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
PHP 在线翻译函数代码
May 07 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
PHP中的事务使用实例
May 26 PHP
php验证手机号码
Nov 11 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 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中的函数-- foreach()的用法详解
2013/06/24 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
python如何读写csv数据
2018/03/21 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Python下简易的单例模式详解
2019/04/08 Python
python中 * 的用法详解
2019/07/10 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
数控技术应届生求职信
2013/11/13 职场文书
长辈证婚人证婚词
2014/01/09 职场文书
年终总结会议主持词
2014/03/17 职场文书
家长通知书家长意见
2014/12/30 职场文书
离婚协议书的范本
2015/01/27 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python