ホームページ  >  記事  >  バックエンド開発  >  ThinkPHPでURL内のエントリファイルを非表示にした後、alipayから渡された値を受け取る方法、_PHPチュートリアル

ThinkPHPでURL内のエントリファイルを非表示にした後、alipayから渡された値を受け取る方法、_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:06801ブラウズ

ThinkPHPでURL内のエントリーファイルを非表示にした後、alipayから渡された値を受け取る方法

この記事の例では、ThinkPHPでURL内のエントリーファイルを非表示にして、alipayから渡された値を受け取る方法を説明しています。参考のためにみんなで共有してください。具体的な方法は以下の通りです

現在、企業プロジェクトのニーズは常に変化しています。このプロジェクトでは Thinkphp2.0 が使用されており、conf.php に設定されている URL_MODEL=2 は .htaccess との互換性と、index.php の非表示を目的としていますが、一部のサードパーティ インターフェイスを使用する場合に使用されます。 (Alipay や MSN Open Platform など)、返されるパラメータには ? 数字が含まれることが多く、URL_MODEL=2 の場合、TP は ? を含む URL を自動的に変換します。

変換前: http://www.xxx.com/index.php/alipay/callback/?is_success/T/sign_type/MD5/notify_id/RqPnCoPT3K9/vwbh3I

変換後: http://www.xxx.com/alipay/callback/is_success/T/sign_type/MD5/notify_id/RqPnCoPT3K9/vwbh3I

変換された URL にはアクセスできなくなりますが、変換前の URL にはアクセスできます。現時点では、alipay コントローラー URL_MODEL=1 をターゲットにする必要がありますが、このコントローラーでは C('URL_MODEL',1) は役に立ちません。なぜなら、TP はエントリーファイル App::run() を入力するときに直接 404 を発行するからです。

色々考えましたが、まず設定ファイルConf.phpを修正したところ、キャッシュファイル~app.phpが生成されることが分かり、状況に応じてキャッシュファイルを削除する必要があったので、インデックスを修正しました。 php エントリ ファイル (実際、App::run() の前に配置でき、自分でカプセル化できます)。

PHP サンプルコード:


コードをコピーします コードは次のとおりです:
// ThinkPHP フレームワークのパスを定義します
define('THINK_PATH', 'TP フォルダー名は教えません/'); // URL にそのようなフォームが存在する場合は、キャッシュ設定ファイルを削除し、識別子を作成します
if(strstr($_SERVER['REQUEST_URI'],'alipay/callback/')||strstr($_SERVER['REQUEST_URI'],'order.return_pay')){
unlink('./home/Runtime/~app.php'); // ロゴとしてキャッシュ ファイルを作成します
$fn= fopen('./home/Runtime/re_url_model.php','wb'); fclose($fn); }elseif(file_exists('./home/Runtime/re_url_model.php')){
unlink('./home/Runtime/re_url_model.php'); unlink('./home/Runtime/~app.php'); }

//プロジェクト名とパスを定義します
定義('APP_NAME', 'ホーム');
定義('APP_PATH', 'ホーム');
//フレームワークエントリーファイルをロードする

require(THINK_PATH."ThinkPHP.php");
// Web サイトのアプリケーション インスタンスをインスタンス化します
アプリ::run(); ?>

プロジェクト設定ファイルConf.phpは、ご自身の状況に応じて判断してください

PHP ソースコード例:



コードをコピーします

コードは次のとおりです:
//Alipayクイックログインリクエストと互換性がありますか? if(strstr($_SERVER['REQUEST_URI'],'alipay/callback/')||strstr($_SERVER['REQUEST_URI'],'order.return_pay')){
$my_array['URL_MODEL'] = 1; } $my_array を返す;


このようにして、www.xxx.com や www.xxx.com/shipin/ などの非 Alipay コントローラー ページにアクセスする場合でも、Web サイトは url_model = 2 を使用してindex.php を非表示にし、URL をフレンドリーにします。

この記事が皆さんの ThinkPHP フレームワークに基づく PHP プログラムの設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/924544.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/924544.html

技術記事

ThinkPHP で URL にエントリーファイルを隠したあと、alipay で渡される値を受け取る方法 この記事では、ThinkPHP で URL にエントリーファイルを隠したあと、alipay で渡される値を受け取る方法について説明します。参考のために皆さんと共有してください...

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

関連記事

続きを見る