小規(guī)模なプログラムの開発に伴い、小規(guī)模なプログラムを開発する Web アプリケーションがますます増えています。ミニプログラムを開発する場合、ミニプログラム専用のサービスを提供するためにアクセス要求を判斷する必要があることがよくあります。
ThinkPHP5 フレームワークを使用して開発された Web アプリケーションの場合、アクセス要求が小さなプログラムからのものであるかどうかを判斷するのは非常に簡単ですので、具體的な実裝方法を以下に紹介します。
1. ミニ プログラム リクエストの特徴
ミニ プログラムが Web アプリケーションにリクエストを送信すると、Web アプリケーションがこれらのリクエストがミニプログラムからのものであることを特定します。その中で、一般的なミニ プログラム リクエストの特性は次のとおりです。
- User-Agent には、HTTP ヘッダーの User-Agent フィールドにミニ プログラム
の識別子が含まれます。 、ミニ プログラムには獨(dú)自のロゴが付きます。たとえば、WeChat アプレットのロゴは「miniProgram」、Alipay アプレットのロゴは「AlipayClient」です。
- リファラーにはミニ プログラムの識別子が含まれます
ミニ プログラムが Web アプリケーションへのリクエストを開始すると、獨(dú)自のソース情報(bào)、つまりリファラーフィールド。 Web アプリケーションは、Referer フィールドを使用して、リクエストがアプレットからのものであるかどうかを判斷できます。たとえば、WeChat アプレットのリファラーには「servicewechat.com」が含まれます。
- ContentType は「application/json」です。
アプレットが Web アプリケーションにリクエストを送信するとき、通常は「application/json」形式で送信されます。したがって、Web アプリケーションは、ContentType フィールドを通じてリクエストがアプレットからのものであるかどうかを判斷できます。
次に、上記の特性を使用して、リクエストが排他的なサービスを提供するミニ プログラムからのものであるかどうかを判斷できます。
2. ThinkPHP5 を使用してミニ プログラム リクエストを決定する
ThinkPHP5 では、Request クラスを使用してリクエストの関連情報(bào)を取得および決定できます。具體的な実裝方法は次のとおりです:
1. 要求された User-Agent 情報(bào)を取得します:
$userAgent = $this->request->header('User-Agent');
2. 要求された Referer 情報(bào)を取得します:
$referer = $this->request->header('Referer');
3.要求された ContentType 情報(bào) :
$contentType = $this->request->contentType();
上記のコードは、コントローラー メソッドに配置して呼び出すことができます。
3. ミニ プログラム リクエスト インターセプター
コントローラー メソッドでミニ プログラム リクエストであるかどうかを直接判斷することに加えて、ThinkPHP5 のリクエスト インターセプターを使用してミニ プログラムをリクエストすることもできます。そして加工。
具體的な実裝方法は以下のとおりです:
1. アプリケーションディレクトリにミドルウェアディレクトリを作成し、その中にCheckMiniProgram.phpファイルを作成します(ファイル名はカスタマイズ可能) 。
2. CheckMiniProgram.php ファイルにインターセプター コードを記述して、リクエストがミニ プログラムからのものであるかどうかを判斷し、ミニ プログラムからのものである場合は、関連する処理を?qū)g行します。例:
namespace appmiddleware; use thinkRequest; class CheckMiniProgram { public function handle(Request $request, Closure $next) { $contentType = $request->contentType(); $userAgent = $request->header('User-Agent'); $referer = $request->header('Referer'); if ($contentType == 'application/json' && strpos($userAgent, 'miniProgram') !== false && strpos($referer, 'servicewechat.com') !== false) { //是小程序請求,進(jìn)行相關(guān)處理 ... } else { //不是小程序請求,直接放行 return $next($request); } } }
上記のコードでは、まず $request->contentType() メソッドを使用して要求された ContentType 情報(bào)を取得し、次に $request->header() メソッドを使用して取得します。要求されたユーザーエージェントおよびリファラー情報(bào)。最後に、その情報(bào)がミニプログラムが要求する特性を満たしているかどうかを判斷し、満たしている場合は対応する処理を?qū)g行し、そうでない場合はそのまま公開します。実際の処理ロジックは、上記のコードの「...」の部分に記入する必要があることに注意してください。
3. アプリケーション ディレクトリの middleware.php 構(gòu)成ファイルに CheckMiniProgram ミドルウェアを追加します:
return [ 'CheckMiniProgram' => appmiddlewareCheckMiniProgram::class, ];
このようにして、ミニ プログラム リクエストをインターセプトし、アプリケーションのすべてのリクエストで処理できます。 . .
4. まとめ
この記事では、ThinkPHP5を使ってミニプログラムリクエストを判定する方法と、ミニプログラムリクエストをインターセプトして処理する方法を紹介します。リクエスト內(nèi)のUser-Agent、Referer、ContentTypeなどの情報(bào)を判斷することで、リクエストがミニプログラムからのものであるかどうかを簡単に判斷し、ミニプログラム専用のサービスを提供できます。
以上がthinkphp5 は小さなプログラムかどうかを判斷しますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホット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
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

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

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