AJax技术

PHP获取访客IP、地区位置等技巧分享

字号+ 作者:H5之家 来源:H5之家 2018-02-16 16:00 我要评论( )

本文主要和大家介绍了利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价

本文主要和大家介绍了利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧。

示例代码

<?php //这个类似用来获取访客信息的 //方便统计 class visitorInfo { //获取访客ip public function getIp() { $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10│172.16│192.168).", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } //根据ip获取城市、网络运营商等信息 public function findCityByIp($ip){ $data = file_get_contents('?ip='.$ip); return json_decode($data,$assoc=true); } //获取用户浏览器类型 public function getBrowser(){ $agent=$_SERVER["HTTP_USER_AGENT"]; if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断 return "ie"; else if(strpos($agent,'Firefox')!==false) return "firefox"; else if(strpos($agent,'Chrome')!==false) return "chrome"; else if(strpos($agent,'Opera')!==false) return 'opera'; else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false) return 'safari'; else return 'unknown'; } //获取网站来源 public function getFromPage(){ return $_SERVER['HTTP_REFERER']; } }

相关推荐:

continue跳转语句用来跳过本次循环中指定条件的语句,并且继续执行其他的循环语句。大家都知道,在PHP中continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。一定要注意的是,用了continue要用“;”来隔开其他的代码,要不可能导致错误!

continue用法:

<?php for ($n = 0; $n < 5; $n++) { if ($n == 2) continue; echo "$n\n"; } ?>

输出结果:

0 1 3 4

很显然,当$n等于2的时候,被跳过了输出,正好符合我们的意愿。如果分号丢失,就会报错!

错误的代码:

<?php for ($n = 0; $n < 5; $n++) { if ($n == 2) continue echo "$n\n"; } ?>

报错信息:

Parse error: syntax error, unexpected ‘echo' (T_ECHO) in D:\phpStudy\WWW\demo\fun\continue.php on line 5

所以注意:我们用了continue一定要注意别漏了分号!

相关推荐:

本文主要和大家介绍了Zend Framework框架中实现Ajax的方法,结合实例形式详细分析了Zend Framework框架中实现ajax功能的具体步骤与相关操作技巧,希望能帮助到大家。

开发平台:Windows XP SP2
测试平台:FreeBSD 7.0
开发工具:Netbeans 6.1
使用框架:Zend Framework 1.5.2
数据库: MySQL 5.0.51a

所需的数据库表和ZF相关目录以及文件:

一、表:


mysql> select * from news; +----+-------+---------------------+ | id | title | add_time | +----+-------+---------------------+ | 22 | rot | 2008-01-04 00:00:00 | | 23 | aaa | 2008-01-04 00:00:00 | | 24 | rot | 2008-01-04 00:00:00 | | 29 | dfeew | 2008-02-27 00:00:00 | | 26 | jesse | 2008-02-27 00:00:00 | | 27 | andle | 2008-02-27 00:00:00 | | 28 | andle | 2008-02-27 00:00:00 | +----+-------+---------------------+

二、目录:

三、相关文件:

1.index.php //入口文件

2.TestDbCon.phhp //数据库连接文件

3.News.php //抽象出来的数据库表文件

4.TestController.php //控制器

5.ajax.phtml //客户操作页面,包含生成XMLHttpRequest对象,发ajax请求,处理请求,取回服务器返回值等

6.get-ajax.phtml //最后根据由服务器取回的数据生成页面元素

相关文件内容:

1.index.php //入口文件


<?php set_include_path('.' . PATH_SEPARATOR .'../library' . PATH_SEPARATOR . get_include_path() . PATH_SEPARATOR . '../application/modules/default/models' . PATH_SEPARATOR . '../application/modules/admin/models'); require_once 'Zend/Controller/Front.php'; require_once 'Zend/Controller/Router/Route.php'; $ctrl=Zend_Controller_Front::getInstance(); $ctrl->addModuleDirectory('../application/modules'); $ctrl->throwExceptions(true); $ctrl->dispatch(); ?>

2.TestDbCon.phhp //数据库连接文件


<?php require_once 'Zend/Db.php'; require_once 'Zend/Registry.php'; class TestDbCon{ public static function getTestDbCon(){ $params=array( 'host'=>'localhost', 'username'=>'root', 'password'=>'123456', 'dbname'=>'test' ); $con=Zend_Db::factory('Pdo_Mysql',$params); return $con; } } ?>

3.News.php //抽象出来的数据库表文件


<?php /** * PHP Template. */ require_once 'Zend/Db/Table/Abstract.php'; class News extends Zend_Db_Table_Abstract{ // protected $_schema='test'; protected $_name='news'; protected $_primary='id'; protected $_sequence=true; } ?>

4.TestController.php //控制器

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Java技巧:AJAX向Response留中输出Xml的办法

    Java技巧:AJAX向Response留中输出Xml的办法

    2018-02-16 13:13

  • redis,redis,keys,效率,shinian315,php学习,mysql学习,css+div,

    redis,redis,keys,效率,shinian315,php学习,mysql学习,css+div,

    2018-02-15 15:55

  • jQuery Dom元素操作技巧,jquerydom操作技巧

    jQuery Dom元素操作技巧,jquerydom操作技巧

    2018-02-15 13:08

  • Thinkphp3.2.3-ajax分页-实例视频教程

    Thinkphp3.2.3-ajax分页-实例视频教程

    2018-02-14 09:38

网友点评