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 日,周,月点击排行统计
Jan 11 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
php计算整个目录大小的方法
Jun 01 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
PHP中的函数声明与使用详解
May 27 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 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操作SVN版本服务器类代码
2011/11/27 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python3实现Web网页图片下载
2016/01/28 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python实现泊松图像融合
2018/07/26 Python
Python偏函数实现原理及应用
2020/11/20 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
规划编制实施方案
2014/03/15 职场文书
迎新晚会主持词
2014/03/24 职场文书
征兵宣传标语
2014/06/20 职场文书
老人节主持词
2015/07/04 职场文书
文书工作总结(范文)
2019/07/11 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
「月刊Action」2022年5月号封面公开
2022/03/21 日漫