php模拟ping命令(php exec函数的使用方法)


Posted in PHP onOctober 25, 2013

使用php模拟我们常用的DOS命令ping命令的方法,这里主要用到的是php的内置函数exec来调用系统的ping命令,从而实现ping命令功能的。

<?php
$to_ping='www.phpernote.com';
$count=2;
$psize=66;
echo "正在执行php ping命令,请等待...\n<br><br>";
flush();
while(1){
 echo "<pre>";
 exec("ping -c $count -s $psize $to_ping", $list);
 for($i=0;$i<count($list);$i++){
  print $list[$i]."\n";
 }
 echo "</pre>";
 flush();
 sleep(3);
}
?>

注意使用exec函数必须需要服务器支持调用系统内置函数才行。另外也可以使用system等php内置函数来实现这个功能。php手册对这二个函数的解释:
exec --- 执行外部程式
语法 : string exec ( string command [, array &output [, int &return_var]] )
说明 :
exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。
如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意 : 如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( )。
如果有给予参数array和return_var,则传回执行的状态命令将会写到这个变量。
意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。
注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

system --- 执行外部程式并且显示输出
语法 : string system ( string command [, int &return_var] )
说明 :
system( )执行给予的命令command,并且输出结果。如果有给予参数return_var,则执行命令的状态码将会写到这个变量。
注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。
注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。
这二个都是用来调用系统shell命令,不同点:
exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败
systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败
exec示例:

<?php  
$a = exec("dir",$out,$status);  
print_r($a);  
print_r($out);  
print_r($status);  
?>

system示例:
<?php  
$a = system("dir",$out);  
print_r($a);  
print_r($out);  
?>
PHP 相关文章推荐
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
Jun 05 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
php强制更新图片缓存的方法
Feb 11 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
PHP中命名空间的使用例子
Mar 22 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
php导入导出excel实例
Oct 25 #PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 #PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 #PHP
php中并发读写文件冲突的解决方案
Oct 25 #PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 #PHP
学习php分页代码实例
Oct 24 #PHP
获取URL文件名后缀
Oct 24 #PHP
You might like
php正则表达式使用的详细介绍
2013/04/27 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP精确计算功能示例
2016/11/29 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python星号*与**用法分析
2018/02/02 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
护理工作感言
2014/01/16 职场文书
建筑安全生产责任书
2014/07/22 职场文书
小学安全汇报材料
2014/08/14 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
《全神贯注》教学反思
2016/02/22 职场文书