热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP+AJAX实现的国际域名查询系统开发实例教程

很多站长都兼职卖域名,赚点小外块,不要鄙视,都希望能够在自己的网站上实现域名查询,看看域名是否可以购卖,现在我们就来讲讲用PHP+AJAX如何实现国际域名查询系统.PHP+AJAX域名查询预备...
很多站长都兼职卖域名,赚点小外块,不要鄙视,都希望能够在自己的网站上实现域名查询,看看域名是否可以购卖,现在我们就来讲讲用PHP+AJAX如何实现国际域名查询系统.

PHP+AJAX 域名查询预备知识

本查询系统利用 PHP 和 JQUery 的 Ajax 功能实现了对域名信息的查询,这里主要实现了域名是否已经注册的查询,系统主要用到了万网提供的域名查询 API 接口,相关知识点罗列如下:

JQUery Ajax 的实现:这部分内容具体可以参见 JQuery API 文档或本站即将推出的《JQUery 教程》。

file_get_contents 函数:把整个文件读入一个字符串,这里用于读取一个网页,万网 API 返回结果页面.

simplexml_load_string 函数:用于解析一个 xml 文档到对象中。

strrpos 函数:用于定位字符串第一次出现的位置,这里用来搜索关键字。

域名查询系统需求分析

根据用户输入的域名,查询该域名是否已经被注册。

对域名注册信息(whois)进行查询,该功能本教程没有实现,可以参考已有功能来实现。

页面/文件信息

domain.html:表单提交及查询结果信息显示页面。

domain_check.php:处理查询域名信息的 PHP 文件。

万网域名查询 API 接口

接口采用HTTP,POST,GET协议.

调用URL:http://panda.www.net.cn/cgi-bin/check.cgi

参数名称:area_domain 值为标准域名,例:5idev.com

调用举例:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=5idev.com

返回XML,代码如下:

 
200 
5idev.com 
211 : Domain name is not available 

XML 结果说明:

returncod:接口调用状态.

key:表示当前 check 的域名.

original:域名 check 的结果.

original 有4个结果:

210:Domain name is available:表示域名可以注册

211:Domain name is not available:表示域名已经被注册

212:Domain name is invalid:表示域名参数传输错误

214:Unknown error:表示未知错误或查询异常

domain.html 页面关键代码

domain.html 页面实现了表单 Ajax 提交及域名查询结果信息显示,完整的代码如下,注意是utf-8编码:

 
 
 
 
 
 
 
 
 

域名注册查询

请输入要查询的域名:www.

这里利用 JAuery 实现了 Ajax GET 方式的表单提交,并对输入的表单进行了初步非空检测.

域名查询 PHP 代码,下面是完整的用于查询域名信息和回应 Ajax 请求 PHP 源代码:

original) 
	{ 
		case '210 : Domain name is available':$result = '该域名可以注册';break; 
		case '211 : Domain name is not available':$result = '该域名已经被注册';break; 
		case '212 : Domain name is invalid':$result = '域名参数错误,请输入的域名格式';break; 
		case '214 : Unknown error':$result='查询异常,请稍后再试';break; 
	}   
} else { 
	// 备用,只能查询国际域名 
	$url = &#39;http://www.checkdomain.com/cgi-bin/checkdomain.pl?domain=&#39;.$_GET<&#39;domain&#39;>; 
	$fp = file_get_contents($url); 
	if( strpos($fp, &#39;, has already been registered&#39;) ){ 
		$result = &#39;该域名已经被注册&#39;; 
	} else { 
		$result =  &#39;该域名可以注册&#39;; 
	} 
} 
echo &#39;&#39;.$domain.&#39;:&#39;.$result;

需要注意的几个问题

支持中文域名查询:由于域名要在页面显示,因此利用 htmlspecialchars 函数做了特殊 html 代码转换,以防止非法输入,更严格的可以使用正则表达式做检测.

由于万网接口提供的是 gb2312 编码,因此在这里利用进行了 iconv() 函数进行了编码转换,如果不使用 utf-8 编码则无需转换.

如果使用 gb2312 编码,在返回 Ajax 结果是可能需要将显示结果进行 gb2312 到 utf-8 编码的转换.

当万网接口无法返回结果时,启用备用接口进行查询,但只能查询国际域名.

推荐阅读
  • 第一种&amp;amp;lt;script&amp;amp;gt;$(&amp;quot;.eq&amp;quot;).on(&amp;qu ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • Jquery 跨域问题
    为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
author-avatar
落雪念伯言
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有