PHPフィルター

Jun 23, 2016 pm 02:35 PM
PHPフィルター

Java でフィルターを実装するのは非常に簡単で、開発した OA システムをアプリケーションに統合するだけで済みます。これは、フィルタリング用の Php ファイルを作成し、OA システム内のすべてのファイルにそのファイルを含める必要があることを意味します。これは非常に恐ろしいことであり、多くのコードを繰り返し変更する必要があり、コードの結合度は非常に高くなります。

PHP マニュアルを探して、いくつかのフィルタリングに関するものを見つけました。


1. フィルタ関数

filter_has_var ? 指定された型の変数が存在するかどうかを確認します 変数が指定された型であるかどうかを確認します

filter_id ?名前付きフィルター フィルター名でフィルター ID を取得します

filter_input_array ? 外部変数を取得し、オプションでフィルターします

filter_input ? サポートされているすべてのフィルターのリストを返します

filter_var_array ? 複数の変数を取得し、必要に応じてフィルタリングします 複数の変数の値を取得し、各変数のフィルタを選択します

filter_var ? 指定されたフィルタを使用して変数をフィルタリングします

以前は使用されていませんこれはパスしたので、今日試してみます。

<filter>	<filter-name>iSpaceAuth</filter-name>	<filter-class>	com.skylark.console.servlet.ISpaceLoginFilter	</filter-class></filter><filter-mapping>	<filter-name>iSpaceAuth</filter-name>	<url-pattern>/console/*</url-pattern></filter-mapping>
ログイン後にコピー

と出力されます Peter is a great guy!

PHP が提供するフィルターは入力データのみをフィルターすることがわかりました。 Java のようにプロジェクト全体へのアクセスをフィルタリングすることはできません。 Java のフィルターでは、フィルター ルールを指定することもできます。このルールを見ると、Apache に rewrite_rules モジュールがあることを思い出します。すべてのアクセス


をファイルにリダイレクトすると、そのファイルはフィルターに相当します。私はそのファイルフィルターに

<?phpfunction convertSpace($string){	   return str_replace("_", " ", $string);}$string = "Peter_is_a_great_guy!";echo filter_var($string, FILTER_CALLBACK,array("options"=>"convertSpace"));?>
ログイン後にコピー

という名前を付けましたが、これは実現できます。ただし、ファイルの編成方法は、単一エントリ アクセスのように規則的である必要があります。 filter.php で新しいアクセス オブジェクトを渡すことにより、

はページにアクセスするメソッドを呼び出します。

シングルエントリーコード

RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)host [NC]RewriteRule ^(.*) filter.php
ログイン後にコピー

しかし、このOAはシングルエントリーアクセスを実装していません。この場合、アクセスするページは常に filter.php になり、その後ジャンプして戻ります。

最後に、auto_prepend_file は PHP 設定ファイル php.ini で設定できることがわかりました。この値の機能は、各ファイルにアクセスする前にファイルを含めることです

。このように、インクルードされたファイルはフィルターに相当します。ははは!この設定ファイルはサービスを再起動する必要がありますが、これは少し面倒です。サービスを再起動せずに変更する方法はありますか?もちろん、.htaccess ファイルを使用する方法もあります。構成は以下の通りです


rree rree

<?phprequire_once './config.php';$act = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : 'index';$ctl = isset($_REQUEST['ctl']) ? trim($_REQUEST['ctl']) : 'default';$ctl = strtolower($ctl);$act = strtolower($act);require_once ROOTPATH.'/'.'lib'.'/controller/'.$ctl.'.php';$ctl = ucfirst($ctl).'Controller';$act = $act.'Action';$app = new $ctl($act);
ログイン後にコピー
RewriteEngine on php_value auto_prepend_file "D:/web/htdocs/demo1/filter.php" 
ログイン後にコピー
 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
不过这样有个缺点就是,当访问量大的时候,性能会受到影响。而直接在php.ini文件中改得花就不用
ログイン後にコピー
 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
会了。还有个优点就是如果把.htaccess文件某个目录,只对该目录有效。那么在web目录下不是所有
ログイン後にコピー
 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

index.php

rree

filter.php コード

的项目都会添加该文件。
ログイン後にコピー

test.php

 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


us URL に http://localhost/demo/index.php と入力します

結果は次のようになります: filter test


実装されていますが、Java のフィルタでは複数のフィルタを実装できますが、これは異なります。うまくいかない。 。どの訪問

をフィルタリングするかを指定することもできますが、これは不可能です。


添付ファイル:

1. Apache 書き換えモジュールを有効にする方法。

http.conf ファイルで LoadModule rewrite_module modules/mod_rewrite.so を見つけて、先頭の # を削除します。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

See all articles