PHP攜帯電話番號位置クエリコード(APIインターフェース/mysql)
Jun 13, 2016 am 11:58 AM
まず、獨自のデータベースを使用して複數(shù)の攜帯電話番號をクエリする方法について説明します。それでも、獨自の攜帯電話番號データベースを用意することをお勧めします。通常の狀況では、一般的な問い合わせにのみ対応したい場合は、プロ版の攜帯電話番號データベースを購入する必要はありませんが、不必要なコストが増加します。 130-139、150-159、180-189で始まる一般的な攜帯電話番號セグメントがすべて含まれている17萬件以上のデータを含むACCESSデータベースを無料で提供します。 MYSQL またはデータベース ツールを利用した MYSQL。
最新の攜帯電話番號データベースのダウンロード アドレス: http://xiazai.jb51.net/201209/yuanma/phone-number-database- jb51.rar
PHP MYSQL 攜帯電話番號の所有権 地上クエリの実裝方法
上記の導(dǎo)入により、すでに獨自の MYSQL データ テーブルが完成しました。このテーブルの構(gòu)造は非常に単純です: ID (シリアル番號)、code (市外局番)、num (攜帯電話番號セグメント)、cardtype (攜帯電話カードのタイプ)、city (攜帯電話番號の場所)。このテーブルには大量のデータが格納されているため、クエリの効率を向上させるために、SQL クエリ ステートメントに基づいて適切なインデックス フィールドを確立する必要があることに注意してください。
1) 攜帯電話番號の位置を取得するには、攜帯電話番號セグメントの位置を特定するだけで済みます。主に以下の関數(shù)で実裝されますが、GetAlabNum、cn_substr、str_replaceはいずれも文字列操作関數(shù)、$dsqlはデータベース操作クラスです。
コードをコピー コードは次のとおりです:
function GetTelphone($tel)
{
global $ city,$ dsql;
if(isset($tel)) $tel = GetAlabNum(trim($tel));//GetAlabNum 関數(shù)は、全角の數(shù)字を置き換え、不正な可能性のある攜帯電話番號を數(shù)字に変換するために使用されます。トリムは余分なスペースを削除します。
else return false;
if(strlen($tel) $tel = cn_substr($tel, 11);//複數(shù)の攜帯電話番號を防ぐために、最初に 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(" dd からコード、都市を選択します`dede_tel` where code='$tel' group by code ");
}
else
{
$tel = cn_substr($tel, 7);
$row = $dsql ->GetOne (" num='$tel' の `dede_tel` から num,city を dd として選択します ");
$city = $row['dd'];市)
{
$city = str_replace("県", "-", $city);
$city = str_replace("市", "", $city); = "< br />[".$city."]";
return $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_setopt($ch, CURLOPT_URL, $url); ch, CURLOPT_POST , true);
curl_setopt($ch, CURLOPT_POSTFIELDS, “mobileCode={$number}&userId=”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $ch) ;
curl_close($ch);
$data = simplexml_load_string($data);
if (strpos($data, 'http://')) {
echo '電話番號形式エラー !';
} else {
echo $data;
}
?>
php mysql を使用して攜帯電話番號の所有権を問い合わせるのは、3 番目の方法でデータを取得する必要があるため、はるかに時間がかかります。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











STD :: Chronoは、現(xiàn)在の時間の取得、実行時間の測定、操作時點と期間の測定、分析時間のフォーマットなど、時間の処理にCで使用されます。 1。STD:: Chrono :: System_Clock :: now()を使用して、現(xiàn)在の時間を取得します。 2。STD:: CHRONO :: STEADY_CLOCKを使用して実行時間を測定して単調(diào)さを確保し、DurateR_CASTを通じてミリ秒、秒、その他のユニットに変換します。 3。時點(Time_Point)と期間(期間)は相互運用可能ですが、ユニットの互換性と時計エポック(エポック)に注意を払う必要があります

toaccessenvironmentvariablesinphp、usegetenv()または$ _envsuperglobal.1.getenv( 'var_name')retievessaspecificvariable.2。$ _ en v ['var_name'] AccessESSESESSVARIABLESIFVARIABLES_ORDERINPHP.INIINCLUDES "E" .SETVARIABLESVIACLIWITHVAR = ValuePhpscript.php、inapach

phphastthreecommentStyles://,#forsingle-lineand/.../formulti-line.usecommentstoexplainwhycodeexists、whatittodo/fixmeitemsanddisablecodecodemcodecodecodecodemprianydedebugging.avoidoversingingsingingsingingsingingsingingsingingsingingsimmentingsimmentingsimplelatic.decratecentecentic.

PHPのデータベースクエリを取得するために前処理ステートメントを使用してPHPの結(jié)果は拡張から変化します。 1。mysqliを使用する場合、get_result()およびfetch_assoc()を介して連想配列を取得できます。これは、最新の環(huán)境に適しています。 2. bind_result()を使用して変數(shù)をバインドすることもできます。これは、フィールドや固定構(gòu)造が少ない狀況に適しています。これは適切な互換性ですが、多くのフィールドがある場合は多くのフィールドがあります。 3. PDOを使用する場合、Fetch(PDO :: FETCH_ASSOC)を介して連想配列を取得するか、Fetchall()を使用してすべてのデータを一度に取得できます。さらに、パラメータータイプマッチング、execute()の実行、リソースのタイムリーなリリース、およびエラーレポートを有効にすることに注意を払う必要があります。

ヘッダー関數(shù)ジャンプ障害の理由とソリューション:1。ヘッダーの前に出力があり、すべての事前出力をチェックして削除する必要があります。 2.終了を追加しないと、後続のコード干渉が発生し、ジャンプ直後に出口またはDIEが追加される必要があります。 3.パスエラーを使用して、絶対パスまたは動的スプライシングを使用して正しさを確保する必要があります。 4.サーバーの構(gòu)成またはキャッシュ干渉は、キャッシュをクリアしたり、環(huán)境テストを置き換えるために試してみることができます。

CTEは、複雑なクエリを簡素化するために使用されるMySQLの一時的な結(jié)果です。現(xiàn)在のクエリで複數(shù)回參照して、コードの読みやすさとメンテナンスを改善することができます。たとえば、注文テーブルで各ユーザーの最新の注文を探している場合、最初に各ユーザーの最新の注文日をCTEから取得し、元のテーブルに関連付けて完全なレコードを取得できます。サブQueriesと比較して、CTE構(gòu)造はより明確で、ロジックはデバッグしやすくなります。使用のヒントには、明示的なエイリアス、複數(shù)のCTEの連結(jié)、再帰CTEを使用したツリーデータの処理が含まれます。 CTEをマスターすると、SQLがよりエレガントで効率的になります。

settingupmysqltablesの場合、therightdatatypesiscialforefficanity andscalabilityを選択します

PHPでは、さまざまな方法を使用して、文字列が特定の文字列で始まるかどうかを判斷できます。1。strncmp()を使用して、最初のn文字を比較します。 0が返された場合、開始は一致し、ケースに敏感ではありません。 2。Strpos()を使用して、サブストリング位置が0であるかどうかを確認します。これは癥例に敏感です。代わりにStripOS()を使用するために使用できます。 3. startswith()またはstr_starts_with()関數(shù)をカプセル化して、再利用性を向上させることができます。さらに、空の文字列はデフォルトでtrueを返し、互換性とパフォーマンスの違いをエンコードする必要があることに注意する必要があります。STRNCMP()は通常より効率的です。
