ホームページ  >  記事  >  バックエンド開発  >  PHP での正確かつ高速な UA 識別

PHP での正確かつ高速な UA 識別

WBOY
WBOYオリジナル
2016-06-13 13:04:391237ブラウズ

PHP での正確かつ高速な UA 識別

UA: ユーザーエージェント これは、PHP が提供するサーバー変数から取得できます。ユーザーエージェント識別の目的は何ですか?

1. ブラウザは何ですか?これはもう必要ありません。 CSS HACK は、ブラウザで正しくレンダリングするのに役立ちます。

2. ブラウザの種類: これは間違いなく必要です。最も必要なのは、異なるページを選択できるように、PC 上か携帯電話上かを知ることです。

3. ユーザーエージェント: 表面的にはブラウザタイプと同じ概念ですが、実際には異なります。ユーザーエージェントの範囲はブラウザタイプよりも広いです。なぜなら、訪問者にはブラウザだけでなく、情報を取得しに来るアプリケーション、検索ロボット、スパム Web サイトも含まれるからです。もちろん、多くのスパム Web サイトは、情報を偽装して取得しに来ますが、それらに対処するために、情報は UA 識別ではなく、IP ルーティングで処理されます。

MVC モードでの UA ルーティングで最も重要なことは、クライアント要求を作成し、最終的に対応する正しいページを表示することです。

しかし、PHP や拡張可能で保守可能なサードパーティのオープン ソースには、UA の識別を迅速に実行できる優れた機能はありません。

get_browser 関数は C 言語レベルですが、関連する INI ファイルをリアルタイムでダウンロードする必要があり、数百 K の大きな INI ファイルから正しい UA が検索され、さまざまな UA に基づいてアルゴリズムが計算されます。対応する結果は、もちろん良いのですが、ダウンロード速度が悪かったり、プロセスが多すぎると、マシンのメモリが不足し、速度が急激に低下します。これは悲劇と言わざるを得ません。

?

最善の方法は、現在のすべての UA 文字列を完全に分離することです。一部の文字列は ROBOT 専用であり、一部の文字列は MOBILE 専用である必要があることがわかります。このことから、CSVを作成すると現在のデータは2フィールド1,000レコード未満のファイルのみとなります。したがって、ファイル サイズは 20KB 未満にまで減少しただけです。処理するデータ量は約25分の1に削減されます。速度は、元の最速速度の 20 倍、元の最低速度の 200 倍以上になります。

?

なぜですか? 1,000 件のレコードについて考えて、その半分を検索するのに何回かかりますか?さらに、20 KB のテキスト内の 1,000 行のレコードを検索する方が、400 KB を超えるファイルでは見つからない 20,000 行を超える構成レコードを検索するよりもはるかに高速です。

?

?

?

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。