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 flush类输出缓冲剖析
Oct 19 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
php实现数据库的增删改查
Feb 26 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
php给数组赋值的实例方法
Sep 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 Mysql日期和时间函数集合
2007/11/16 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Django model序列化为json的方法示例
2018/10/16 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python的flask框架难学吗
2020/07/31 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
机械设计制造专业个人求职信
2013/09/25 职场文书
财务主管自我鉴定
2014/01/17 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
开工典礼致辞
2015/07/29 职场文书
思品教学工作总结
2015/08/10 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
Java输出Hello World完美过程解析
2021/06/13 Java/Android