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 相关文章推荐
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
php除数取整示例
Apr 24 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
yii2实现根据时间搜索的方法
May 25 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
实例分析PHP中PHPMailer发邮件
Dec 13 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
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
基于python实现KNN分类算法
2020/04/23 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
院药学专业个人求职信
2013/09/21 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
班组长的岗位职责
2013/12/09 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
工程催款通知书
2015/04/17 职场文书
教师节领导致辞
2015/07/29 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
基于Python实现股票收益率分析
2022/04/02 Python