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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
谷歌音乐搜索栏的提示功能php修正代码
May 09 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
PHP-redis中文文档介绍
Feb 07 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
php文件夹的创建与删除方法
Jan 24 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP内存溢出优化代码详解
Feb 26 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源代码数组统计count分析
2011/08/02 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
Symfony查询方法实例小结
2017/06/28 PHP
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
详解python基础之while循环及if判断
2017/08/24 Python
详解python中的装饰器
2018/07/10 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
python函数的万能参数传参详解
2019/07/26 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
中文系师范生自荐信
2013/10/01 职场文书
技术总监的工作职责
2013/11/13 职场文书
交通事故检查书范文
2014/01/30 职场文书
运动会稿件300字
2014/02/14 职场文书
迎新晚会策划方案
2014/06/13 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
人力资源部岗位职责
2015/02/11 职场文书
综合办公室岗位职责
2015/04/11 职场文书
2016年情人节问候语
2015/11/11 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
对Keras自带Loss Function的深入研究
2021/05/25 Python
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
java如何实现socket连接方法封装
2021/09/25 Java/Android