国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP+AJAX實現的國際域名查詢系統開發實例教程

2024-05-04 21:49:47
字體:
來源:轉載
供稿:網友

很多站長都兼職賣域名,賺點小外塊,不要鄙視,都希望能夠在自己的網站上實現域名查詢,看看域名是否可以購賣,現在我們就來講講用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,代碼如下:

  1. <?xml version="1.0" encoding="gb2312"?> 
  2. <property> 
  3. <returncode>200</returncode> 
  4. <key>5idev.com</key> 
  5. <original>211 : Domain name is not available</original> 
  6. </property> 

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編碼:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1 
  2. -transitional.dtd"> 
  3. <html> 
  4. <head> 
  5. <title>域名注冊查詢</title> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  7. <script src="js/jquery-1.4.2.min.js"></script> 
  8. <script type="text/javascript"
  9. function domain_check() 
  10.     var domain = $.trim($("#domain").val()); 
  11.     if( domain == ''){ 
  12.         $("#check_result").html('請輸入要查詢的域名信息,如:5idev.com'); 
  13.         $("#domain").focus(); 
  14.         return false; 
  15.     } 
  16.     $("#domain_result").html('<img src="images/loading.gif" /> 正在查詢,請稍后...'); 
  17.     $.ajax({ 
  18.         type:"get"
  19.         cache:false, 
  20.         datatype: "text"
  21.         url:"domain_check.php?domain="+domain, 
  22.         success:function(data){ 
  23.             $("#domain_result").html(data); 
  24.         } 
  25.     }); 
  26. </script> 
  27. </head> 
  28. <body> 
  29. <h1>域名注冊查詢</h1> 
  30. <div> 
  31. <form > 
  32. 請輸入要查詢的域名:www.<input id="domain" type="text" value="5idev.com" onfocus="this.value=''" /> 
  33. <input type="button" value=" 查 詢 " onclick="domain_check()" /> 
  34. </form> 
  35. </div> 
  36. <div id="domain_result"></div> 
  37. </body> 
  38. </html> 

這里利用 JAuery 實現了 Ajax GET 方式的表單提交,并對輸入的表單進行了初步非空檢測.

域名查詢 PHP 代碼,下面是完整的用于查詢域名信息和回應 Ajax 請求 PHP 源代碼:

  1. <?php 
  2. $domain = htmlspecialchars(trim($_GET['domain'])); 
  3. if( !$domain ){ 
  4.     echo '請輸入要查詢的域名,如:5idev.com'
  5.     exit
  6. // 調用萬網域名查詢API 
  7. $area_domain = iconv("utf-8""gb2312",$domain); 
  8. $domain_api = 'http://panda.www.net.cn/cgi-bin/check.cgi?area_domain='.$area_domain
  9. $contents = file_get_contents($domain_api); 
  10. $xml = simplexml_load_string($contents); 
  11. if (!emptyempty($xml)) { 
  12.     switch($xml->original) 
  13.     { 
  14.         case '210 : Domain name is available':$result = '該域名可以注冊';break
  15.         case '211 : Domain name is not available':$result = '該域名已經被注冊';break
  16.         case '212 : Domain name is invalid':$result = '域名參數錯誤,請輸入的域名格式';break
  17.         case '214 : Unknown error':$result='查詢異常,請稍后再試';break
  18.     }  //開源軟件:Vevb.com 
  19. else { 
  20.     // 備用,只能查詢國際域名 
  21.     $url = 'http://www.checkdomain.com/cgi-bin/checkdomain.pl?domain='.$_GET<'domain'>; 
  22.     $fp = file_get_contents($url); 
  23.     ifstrpos($fp', has already been registered') ){ 
  24.         $result = '該域名已經被注冊'
  25.     } else { 
  26.         $result =  '該域名可以注冊'
  27.     } 
  28. echo '<b>'.$domain.'</b>:'.$result
  29. ?> 

需要注意的幾個問題

支持中文域名查詢:由于域名要在頁面顯示,因此利用 htmlspecialchars 函數做了特殊 html 代碼轉換,以防止非法輸入,更嚴格的可以使用正則表達式做檢測.

由于萬網接口提供的是 gb2312 編碼,因此在這里利用進行了 iconv() 函數進行了編碼轉換,如果不使用 utf-8 編碼則無需轉換.

如果使用 gb2312 編碼,在返回 Ajax 結果是可能需要將顯示結果進行 gb2312 到 utf-8 編碼的轉換.

當萬網接口無法返回結果時,啟用備用接口進行查詢,但只能查詢國際域名.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 喀什市| 永康市| 南平市| 汉川市| 潼南县| 天津市| 汝州市| 阳江市| 嘉禾县| 元氏县| 广南县| 涡阳县| 福泉市| 大安市| 德兴市| 沅陵县| 仲巴县| 贞丰县| 台东市| 霍林郭勒市| 静海县| 澎湖县| 宣汉县| 合山市| 交城县| 黄大仙区| 景洪市| 福鼎市| 奈曼旗| 来凤县| 孟连| 城固县| 昌乐县| 兰州市| 图片| 大宁县| 南皮县| 凤凰县| 宜阳县| 安国市|