php根据ip获取地区的程序代码
先用php获取本机的ip,再用php的curl函数来获取用户的详细地区.下面来看一下代码;
代码如下 | 复制代码 |
*/ |
方法一,利用QQWry.Dat IP库,我们只胖乎乎
用简单的办法。
使用示例
示例一:
代码如下 | 复制代码 |
$IpLocation = new IpLocation(); |
示例二:
代码如下 | 复制代码 |
$IpLocation = new IpLocation('../qqwry/QQWry.Dat'); |
具体的IP库与Iplocation类文件这里不介绍了大家百度搜索吧。
方法二,利用api接口
示例一,
代码如下 | 复制代码 |
/** $url = "http://ip168.com/ip/?ip=".$ip; |
示例二,
下面这个函数是用php的curl函数从网路上获取详细地区
代码如下 | 复制代码 |
function lazdf($ip){ $curl= curl_init(); curl_setopt($curl,CURLOPT_URL,"http://www.ip138.com/ips138.asp?ip=".$ip); return "<div class="global_widht global_zj zj" style="background: none repeat scroll 0% 0% rgb(226, 255, 191); font-size: 12px; color: rgb(85, 85, 85); height: 30px; line-height: 30px; border-bottom: 1px solid rgb(204, 204, 204); text-align: left;"> 欢迎来自 <b>".$ipp[1]."</b> 的朋友!</div>"; } echo lazdf(GetIP());//输出ip |
欢迎来自长沙地区的朋友
下面本文章总结了三种把数组转换成字符串然后写入到数据库中,一是直接利用implode函数,另外就使用serialize与eval函数进行转换,下面来一起看看吧。最简单的办法
转换implode
代码如下 | 复制代码 |
数组->字符 字符->数组 |
使用php的serialize函数。
例子:
代码如下 | 复制代码 |
$data = array('上海', '北京', '武汉'); |
如何再将从数据库中取出的数组字符串,转换成数组呢?用unserialize函数:
代码如下 | 复制代码 |
$data = unserialize($data); echo $data; |
当然这样我们还可以直接写入到文件中
serialize和反序列unserialize来实现。
代码如下 | 复制代码 |
<?php |
例子
使用期php的eval函数
string2array,array2string PHP数组转字符串写入数据库,字符串数组转可执行
代码如下 | 复制代码 |
/** |
session的使用:
session_start();定义$_SESSION数组变量。
session_start()使用前,不能有任何形式的输出,包括php中的输出和html代码。
$_SESSION数组不可以使用数值下标,只可以使用字符串下标。
php.ini中的session_save_path配置项决定了session的保存位置。
默认情况下,session是保存在文件中。我们可以使用session_set_save_handler()函数来重写session机制。
设置有效时间
代码如下 | 复制代码 |
SESSION: ini_set('session.gc_maxlifetime',24*3600);//session保存一天 session_start(); $_SESSION[‘web_name’]='网易'; |
说明:好像默认是时间是:20-24分钟,但是关闭浏览器session就自动消失了!
删除session:
删除某个元素 unset($_SESSION[key]);
删除所有session $_SESSION=array();
删除保存session数据的文件 session_destroy();
session_distroy()方法只是删除了服务器端的session文件,并不会释放内存中的$_SESSION变量,如果我们在session_distroy()后,立即var_dump($_SESSION),仍然可以看到session输出。因此如果想完全的释放session,必须配合使用$_SESSION=array()。
cookie的使用:
设置cookie:setcookie(变量名,变量值,生存时间(时间戳))。
删除cookie:setcookie(变量名,值,time()-1)。原理:设置cookie的生存时间过期。
读取cookie:$_COOKIE[变量名]。
$path="/"; //设置cookie存放的路径;1.默认存放是本目录,只有本目录下才能访问,2.“/”表示存放在根目录,3.“/foo/”只有foo文件夹下面文件才能访问
代码如下 | 复制代码 |
|
注意:cookie存放的值只能是string类型的,但是要存放数值怎么解决呢!
存储:
代码如下 | 复制代码 |
$array=array('a','b'); |
读取:
代码如下 | 复制代码 |
//恢复serialize对象 $other = StripSlashes($_COOKIE['snsresult']);//必须执行这步 |
注意:setcookie在代码中存取值时前面是不可以输出任何内容的,空行也不可以,不然cookie是没有值的。
1、$_COOKIE只可以读取cookie的值,并不能对cookie进行设置。
2、在使用setcookie之前,不能有任何类型的输出。
3、在脚本第一次设置cookie后,是不能在当前脚本使用$_COOKIE获取到的。需刷新页面或者在其他脚本中获取。
自动登录
代码如下 | 复制代码 |
//检查用户是否登录
|
两者的联系与区别:
联系:
两者都被成为会话技术,用于解决http的无状态性。
sessionID是保存在cookie中的。默认情况下,session是依赖cookie的,如果浏览器端完全禁用了cookie,那么session也就不能用了。但是我们有其他的方法可以让session继续有用。比如url重写,将sessionID放在url中;给表单增加隐藏域,讲sessionID存放在隐藏域中,发送至浏览器。
区别:
cookie保存早浏览器端,每次访问服务器的时候,都会讲cookie带过去,保证让服务器知道两次请求来自于同一个客户端。安全性较低。
session保存在服务器,每次请求都会通过cookie带来的sessionID去服务器匹配。安全性较高。
session的有效期从session_start()开始,到浏览器关闭结束。
cookie可以设定有效期。默认为浏览器关闭cookie就失效,sessionID丢失,即使服务器端的session文件还在,也不会被找到。
正则表达试是我们在开发验证时会常用到的一些规则,下面我整理了在我们用户数据提交时的一些常用的正则表达式,希望这些整理数据对你有帮助。正则表达式一直以来是我比较头痛的东西,不过工作中是离不开正则表达式的,代码、vim编辑器、awk等Linux命令都广泛应用正则表达式。这是我收集并且测试过的PHP代码中常用的正则表达式,首先建立测试函数:
代码如下 | 复制代码 |
function regTest( $pattern, $str ) { |
1. 匹配中文字符
代码如下 | 复制代码 |
$pattern = "/[x{4e00}-x{9fa5}]/u"; |
关于汉字的匹配,网上很多给的都是“[u4e00-u9fa5]”,这个正则不一定完全正确。
2. 匹配tab缩进、空格和换行
代码如下 | 复制代码 |
$pattern = "/[x{4e00}-x{9fa5}]/u"; |
3. 匹配Email地址
代码如下 | 复制代码 |
$pattern = "[w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*]"; $str = '如有问题,请联系service@lenovo.com或者contact@ibm.com。'; regTest( $pattern, $str ); //依次输出结果 //int(1) //array(4) { [0]=> array(2) { [0]=> string(18) "service@lenovo.com" [1]=> string(15) "contact@ibm.com" } [1]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [2]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } [3]=> array(2) { [0]=> string(0) "" [1]=> string(0) "" } } //string(41) "如有问题,请联系Test或者Test。" |
//使用Filter函数
filter_var($email, FILTER_VALIDATE_EMAIL);
我一般不自己写正则表达式去验证邮箱,使用PHP内置filter函数可以很方便的完成邮箱地址的验证。
4. 匹配国内手机号码和电话号码
代码如下 | 复制代码 |
//固定电话匹配 $pattern = "[d{3,4}-d{7,8}]"; $str = '联系电话010-12345678'; regTest( $pattern, $str ); //最简单的匹配手机号匹配 $pattern = "[1d{10}]"; $str = '联系电话15812345678'; regTest( $pattern, $str ); |
5. 匹配HTML中的图片地址
代码如下 | 复制代码 |
$pattern = '/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/'; $str = '<img id="test_img" src="images/123.gif" alt="test" />'; regTest( $pattern, $str );
/** /** |
补充
表单验证匹配
验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
验证账号,不能为空,不能有空格,只能是英文字母:^S+[a-z A-Z]$
验证账号,不能有空格,不能非数字:^d+$
验证用户密码,以字母开头,长度在 6-18 之间:^[a-zA-Z]w{5,17}$
验证是否含有 ^%&',;=?$ 等字符:[^%&',;=?$x22]+
匹配Email地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配日期,只能是 2004-10-22 格式:^d{4}-d{1,2}-d{1,2}$
匹配国内电话号码:^d{3}-d{8}|d{4}-d{7,8}$
评注:匹配形式如 010-12345678 或 0571-12345678 或 0831-1234567
匹配中国邮政编码:^[1-9]d{5}(?!d)$
匹配身份证:d{14}(d{4}|(d{3}[xX])|d{1})
评注:中国的身份证为 15 位或 18 位
不能为空且二十字节以上:^[s|S]{20,}$
目前最为流行的微信游戏了,就是抽奖活动,下面我看一站长整理了这款抽奖源码出来,下面我也转过来与各位朋友分享。在做微信的过程中用到了微信抽奖,看了其他的作者都只是吧微信抽奖的页面共享出来了。我现在把转盘抽奖程序和微信抽奖页面都共享出来,有需要的自己把两者组合一下即可。
部份源码:配置文件
代码如下 | 复制代码 |
<?php return array ( 'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', 'DB_NAME' => 'ites', 'DB_USER' => 'root', 'DB_PWD' => '111111', 'DB_PORT' => 3306, 'DB_PREFIX' => 'it_', 'APP_DEBUG' => 1, 'SHOW_ERROR_MSG' => 1, 'SHOW_PAGE_TRACE' => 1, 'DATA_CACHE_TYPE' => 'Redis', 'REDIS_HOST' => '127.0.0.1', 'REDIS_PORT' => 6379, 'DATA_CACHE_TIME' => 3600, 'URL_CASE_INSENSITIVE' => true, 'TMPL_STRIP_SPACE' => false, 'URL_HTML_SUFFIX' => '', 'SITE_NAME' => '11111', 'SITE_URL' => 'http://www.111cn.net/', 'WECHAT_TOKEN' => '你的', 'WECHAT_APPID' => '你的', 'WECHAT_APPSECRET' => '你的', 'DATA_AUTH_KEY' => 'abcdddd', ); ?> |
commond.php文件
代码如下 | 复制代码 |
<?php function isEmail($email) { /** /* 根据请求类型设置特定参数 */ /* 初始化并执行curl请求 */ /** // 数据保存到文件 /** for ($i = 0; $i < $len; $i++) { $str = sprintf('%010d', $expire ? $expire + time():0); for ($i = 0; $i < $len; $i++) { /** if($expire > 0 && $expire < time()) { for ($i = 0; $i < $len; $i++) { for ($i = 0; $i < $len; $i++) { function getTaskStatusStr($status = 0,$type = 'apply' , $company = ''){
?> |
源码下载地址
http://file.111cn.net/upload/2014/3/wx.rar
相关文章
- 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- 主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24