この記事では、API インターフェイスと mysql+php を使用して携帯電話番号の所有権を実装する方法を紹介し、必要な学生に例を示します。
まず、独自のデータベースを使用して複数の携帯電話番号をクエリする方法を紹介します。独自の携帯電話番号データベースを用意することをお勧めします。通常の状況では、一般的な問い合わせにのみ対応したい場合は、不必要なコストが増加するプロ版の携帯電話番号データベースを購入する必要はありません。 130-139、150-159、180-189で始まる一般的な携帯電話番号セグメントがすべて含まれている17万件以上のデータを含むACCESSデータベースを無料で提供します。 MYSQL またはデータベース ツールを使用した MYSQL
最新の携帯電話番号データベースのダウンロードアドレス: http://www.bKjia.c0m/down/phone-number-database.rar
PHP+MYSQL携帯電話番号位置クエリ実装方法
上記の導入により、すでに独自の MYSQL データ テーブルが完成しました。このテーブルの構造は非常に単純です: ID (シリアル番号)、code (市外局番)、num (携帯電話番号セグメント)、cardtype (携帯電話カードのタイプ)、city (携帯電話番号の場所)。このテーブルには大量のデータが格納されているため、クエリの効率を向上させるために、SQL クエリ ステートメントに基づいて適切なインデックス フィールドを確立する必要があることに注意してください。
1) 携帯電話番号の位置を取得するには、携帯電話番号セグメントの位置を特定するだけで済みます。主に以下の関数で実装されますが、GetAlabNum、cn_substr、str_replaceはいずれも文字列操作関数、$dsqlはデータベース操作クラスです。
コードは次のとおりです | コードをコピー |
関数 GetTelphone($tel) { グローバル $city,$dsql; if(isset($tel)) $tel = GetAlabNum(trim($tel));//GetAlabNum 関数は、全角の数字を置き換え、不正な可能性のある携帯電話番号を数字に変換するために使用されます。trim は余分なスペースを削除します。 それ以外の場合は false を返します; if(strlen($tel) $tel = cn_substr($tel, 11);//複数の携帯電話番号を防ぐために、最初に 11 文字をインターセプトします //if(!is_numeric($tel)) return false; if(cn_substr($tel, 1) == "0")//携帯電話番号が0で始まるかどうかを判定します。この場合、固定電話番号は0で始まる可能性があります { if(cn_substr($tel, 2) == "01" || cn_substr($tel, 2) == "02") $tel = cn_substr($tel, 3);//3桁の市外局番 else $tel = cn_substr($tel, 4); $row = $dsql->GetOne(" select code,city as dd from `dede_tel` where code='$tel' group by code "); } それ以外 { $tel = cn_substr($tel, 7); $row = $dsql->GetOne(" `dede_tel` から dd として num,city を選択します (num='$tel' "); } $city = $row['dd']; if($city) { $city = str_replace("県", "-", $city); $city = str_replace("city", "", $city); $city = " [".$city."]"; $city を返します; } } |
API実装方法、ここでは独自のデータベースは必要ありませんが、制限があります
主にcurlを使用して実装されるため、PHPのcurlのサポートを有効にする必要があります。
コードは次のとおりです | コードをコピー |
header(“Content-Type:text/html;charset=utf-8”); if (isset($_GET['number'])) { $url = ‘http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo’; $number = $_GET['number']; $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, “mobileCode={$number}&userId=”); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data =curl_exec($ch); curl_close($ch); $data = simplexml_load_string($data); if (strpos($data, ‘http://’)) { echo ‘携帯電話番号の形式エラー!’; } その他 { $data をエコー; } } ?> |
php mysql を使用して携帯電話番号の所有権をクエリするのは、データを 3 番目の方法で取得する必要があるため、はるかに時間がかかります。