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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
PHP服务器页面间跳转实现方法
Aug 02 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
PHP实现的英文名字全拼随机排号脚本
Jul 04 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
办加油卡单位介绍信
2014/01/09 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
2016年公司新年寄语
2015/08/17 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
企业团队精神心得体会
2016/01/19 职场文书
检讨书之工作不认真
2019/08/14 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
SQL Server中搜索特定的对象
2022/05/25 SQL Server