php免费根据ip查城市,根据ip获取城市的方法

这个方法放到includes/lib_base.php的最下面

/*

*

* 根据ip获取城市的方法

* @param type $ip ip地址

* @return boolean|string

*

*/

function GetIpLookup($ip = ''){

if(empty($ip)){

return '请输入IP地址';

}

$res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);

if(empty($res)){ return false; }

$jsonMatches = array();

preg_match('#\{.+?\}#', $res, $jsonMatches);

if(!isset($jsonMatches[0])){ return false; }

$json = json_decode($jsonMatches[0], true);

if(isset($json['ret']) && $json['ret'] == 1){

$json['ip'] = $ip;

unset($json['ret']);

}else{

return false;

}

return $json;

}

定点广告投放制作步骤

1.我们的目标是操作 广告表 即ad 首先需要在ad表添加一个”位置“的字段。

2.后台添加广告的时候 需要有一个字段可以选 那么首先在后台管理找到添加广告的页面 “在新标签页打开” 找到添加页面是来自那个php文件【这个php文件应该是在后台即 admin目录下】 找到add方法 并且在add方法中找到display那句话 找到添加页面的模板。

3.添加页面的模板【模板在admin/template目录下】 添加一个下拉列表 里面的内容 需要在 ads.php中 add方法里查询下城市表里面的所有城市即parent_id为1的数据 并且发送到模板中。模板循环显示出来。

4.通过页面审查元素 找到添加方法是那个 【查看原代码搜索“act”即input隐藏域name等于act的那个 看看value值是什么 应该是insert】在ads.php中查找添加方法 并且找到里面的 insert语句 将我们新加的”位置“字段放进去使4其可以成功的添加到数据库中

5.首先 因为init.php 中引入了lib_base.php这个文件 获取ip即real_ip这个方法存在在lib_base.php中因此快盘中的代码也直接粘贴在这个文件的最后一行 那么此时我们在index.php中就可以调用根据ip查询地址的方法了。

6.index.php中我们查询城市在广告表中的数据 并且将数据发送到页面当中页面中显示出我们添加的广告。

----------------定点投放功能到此结束------------

以上就介绍了根据ip获取城市的方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用

C语言strcpy()函数:复制字符串头文件:#include 定义函数:char *strcpy(char *dest, const char *src);函数说明:strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。返回值:返回参数dest 的字符串起始地址。附加说…

使用github+hexo搭建静态blog

解决了个人博客图片不显示问题。解决了打开页面产生404问题。学习了如何更换界面主题。学习了如何使用Git。 注:这篇文章仅仅是入个门,了解一下怎么使用githubhexo创个静态blog,具体blog细节比如个人介绍,评论插件,音…

java 安卓调试,Android Studio(二十一):调试你的应用

Android Studio包含了一个调试器,允许你调试运行在Android虚拟机或连接的Android设备的应用。通过Android Studio的调试器,你可以:1、 选择你调试设备的app2、 为你的代码设置断点3、 在运行时检测变量和表达式4、 截图和录像通过点击工具栏中…

java将属性练成字符串,Java中通过属性字符串名取属性内容

在Android开发当中资源的获取其实是间接通过R文件进行的,这个R文件就相当于是一个地址列表,存放着每个资源的地址那么如何快速高效的获取就是这篇文章要分析的问题假设我们有一个图片资源叫btn_bg那么将一个按钮背景设置为这个图片的方式就是btn.setBackgroundResource(R.drawa…

AttributeError: module ‘numpy‘ has no attribute ‘int‘.

解决方法 降低numpy版本 numpy 1.22 修改源代码 参考 [1] 【已解决】AttributeError: module ‘numpy‘ has no attribute ‘int‘. [2] AttributeError: module numpy has no attribute int .报错解决方案

Java字段和属性

属性和字段区别: Java中的属性(property),通常可以理解为get和set方法。更形象的说就是:属性是对字段的封装,供外部访问。 而字段(field),通常叫做“类成员”,或 "类成员变量”,有时也叫“…

java我现在不懂看不懂,看都看不懂,难道我与Java无缘吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package VIP;public class Hero {private String name;private int Life;public void hero(String name,int Life){}public String getName() {return name;}public void setName(String name) {this.name name;}public int getLi…

Java反射 Class类

Class类的实例表示正在运行的Java应用程序中的类和接口。它是Java反射的基础,对任何一个类,首先产生一个Class对象,然后才通过class类获得其他的信息。 获取class类对象方式: 通过Object类提供的getClass()方法获得Class类对象。…

php数字从大到小生成,php输入几个数从大到小排序的案例

php输入几个数从大到小排序的案例发布时间:2020-10-28 11:53:20来源:亿速云阅读:66作者:小新php输入几个数从大到小排序的案例?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小…

Java反射 Constructor类

Java反射 Constructor类 Java通过反射可以获取构造方法,和使用构造方法创造对象。 在网上找了一个比较好理解的例子来弄清楚Constructor类。 public Constructor getConstructor()// 公共构造方法对象 public Constructor[] getConstructors()//所有公共构造方法…

mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測

TPC-C 模擬的情境TPC-C 模擬的情境是一個大型的商品批發商,擁有若干個倉庫,每個倉庫擁有 100000 件商品庫存、負責為 10 個地區供貨,每個地區服務 3000 名客戶,每名客戶平均一筆訂單有 10 項商品,所有訂單中約 1% 在其…

使用Linux进行c或c++编程

使用Linux进行C或c语言编程 1.创建名为 HelloWorld 的 c 或者 c 文件 vim HelloWorld.c vim Helloworld.cpp2.然后就进入文本编辑界面 输入i,进入编辑模式。写代码。按esc键,进入命令模式,输入:wq保存并退出文本编辑器。然后可以看见对应位…

如何用php写表单中的年月日,php写的日历程序 - adamboy的个人页面 - OSCHINA - 中文开源技术交流社区...

$weekArr array(Sun,Mon,Tue,Wed,Thu,Fri,Sat);//获取空格://echo date("D",strtotime("2012-02-07"));function getSpace($month,$year){global $weekArr;if(!$year){$year date("Y");}$firstDay date("D",strtotime($…

Java反射 field

Java反射 field 获取字节码文件对象 Class c Class.forName(“fieldtest.Student”); 通过无参构造方法创建对象obj Constructor con c.getConstructor(); Object obj con.newInstance(); 通过成员变量名,获取单个的成员变量 Field nameField c.getField("name"…

mysql5.7循环,python3.4用循环往mysql5.7中写数据并输出的实现方法

python3.4用循环往mysql5.7中写数据并输出的实现方法来源:中文源码网 浏览: 次 日期:2018年9月2日python3.4用循环往mysql5.7中写数据并输出的实现方法 如下所示:#!/usr/bin/env python# -*- coding:utf-8 -*-# __author__ …

java反射 Method

java反射 Method 获取字节码文件对象 Class c Class.forName("fieldtest.Student");通过无参构造方法创建对象obj Constructor con c.getConstructor(); Object obj con.newInstance();Method m1 c.getMethod(“study”);获取study方法 m1.invoke(obj);使用obj对…

axure 鼠标变成手,Axure教程|鼠标移入移出自动显示与隐藏三级菜单

前几天因工作需要做一个鼠标移入显示隐藏菜单,鼠标移出自动隐藏菜单,做的时候觉得没有什么问题,做完后预览就发现一个很严重的问题,就是鼠标移出一级菜单向二级菜单时二级菜单不显示,或者二级菜单显示三级菜单不显示。…

java与平台无关的原因

Java字节码 Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。 java要运行要经过如下步骤 ① Java源文件—->编译器(工具)—->…

php websocket应用实例,php使用websocket示例详解

下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket 套接字做了封装处理,开发者使用的时候只需要考虑数据的交互而不用处理连接的建立…

Java集合 Collection

Jdk提供了一些特殊的类,用来保存数量不确定的对象,存储任意类型对象,长度可变。这些类统称为集合。 集合类位于Java.util包中,按存储结构分为Collection单列集合和Map双列集合。 Collection是单列集合的根接口,有两个…