php模拟ping命令(php exec函数的使用方法)

2015-01-24信息快讯网

使用php模拟我们常用的DOS命令ping命令的方法,这中间用到了exec函数并做函数解释,还有相关函数system的使用。

使用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函数分享之curl方式取得数据、模拟登陆、POST数据
PHP小技巧之函数重载
PHP is_subclass_of函数的一个BUG和解决方法
php中$美元符号与Zen Coding冲突问题解决方法分享
分享一段php获取linux服务器状态的代码
windwos下使用php连接oracle数据库的过程分享
查找php配置文件php.ini所在路径的二种方法
php5.2以下版本无json_decode函数的解决方法
浅析php中json_encode()和json_decode()
dedecms函数分享之获取某一栏目所有子栏目
ECMall支持SSL连接邮件服务器的配置方法详解
PHP小技巧之JS和CSS优化工具Minify的使用方法
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
yii框架通过控制台命令创建定时任务示例
PHP中批量生成静态html(命令行下运行PHP)
强制PHP命令行脚本单进程运行的方法
php命令行使用方法和命令行参数说明
php设计模式之命令模式使用示例
学习php过程中的一些注意点的总结
php导入导出excel实例
php中生成随机密码的自定义函数代码
PHP中include与require使用方法区别详解
10 个经典PHP函数
PHP字符串长度计算 - strlen()函数使用介绍
php检测网页是否被百度收录的函数代码
php mysql_real_escape_string函数用法与实例教程
ThinkPHP利用PHPMailer实现邮件发送实现代码
php一次性删除前台checkbox多选内容的方法
遭遇php的in_array低性能问题
怎么在Windows系统中搭建php环境
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
PHP系统命令函数使用分析
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
浅析Apache中RewriteCond规则参数的详细介绍
浅析memcache启动以及telnet命令详解
Memcached常用命令以及使用说明详解
解析Ubuntu下crontab命令的用法
hadoop中一些常用的命令介绍
©2014-2024 dbsqp.com