ThinkPHP の I メソッドは、英語の Input (入力) に由来する新しいメンバーで、主にシステム入力変数をより便利かつ安全に取得するために使用されます。次のように:
I('変数の型.変数名',['デフォルト値'],['フィルターメソッド'])
変数の型はリクエストメソッドまたは入力の型を指します。
各変数タイプの意味は次のとおりです:
変数の型 | 意味 |
---|---|
get | GETパラメータを取得 |
post | POSTパラメータを取得 |
param | リクエストのタイプを自動的に決定GET、POST、または PUT パラメータを取得するには |
request | REQUESTパラメータを取得 |
put | PUTパラメータを取得 |
session | $_SESSIONパラメータを取得 |
cookie | $_COOKIE パラメータを取得 |
server | $_SERVER パラメータを取得 |
globals | $GLOBALS パラメータを取得 |
注: 変数の型では大文字と小文字が区別されません。
変数名では大文字と小文字が厳密に区別されます。
デフォルト値とフィルタリング方法はオプションのパラメータです。
1。メソッド フィルタリング:
echo I('get.id'); // 相当于 $_GET['id'] echo I('get.name'); // 相当于 $_GET['name']は、次のような変数タイプ全体の直接取得をサポートしています。
echo I('get.id',0); // 如果不存在$_GET['id'] 则返回0 echo I('get.name',''); // 如果不存在$_GET['name'] 则返回空字符串同様に、次のような post または他の入力タイプの変数を取得できます。
echo I('get.name','','htmlspecialchars'); // 采用htmlspecialchars方法对$_GET['name'] 进行过滤,如果不存在则返回空字符串
I('get.'); // 获取整个$_GET 数组
param 型変数は、数値インデックスを使用して URL パラメータを取得することもできます (PATHINFO モード パラメータは、GET か POST かに関係なく有効である必要があります)。例:
現在のアクセス URL アドレスはhttp://serverName/index です。 php/New/2013/06/01
その後、
I('post.name','','htmlspecialchars'); // 采用htmlspecialchars方法对$_POST['name'] 进行过滤,如果不存在则返回空字符串 I('session.user_id',0); // 获取$_SESSION['user_id'] 如果不存在则默认为0 I('cookie.'); // 获取整个 $_COOKIE 数组 I('server.REQUEST_METHOD'); // 获取 $_SERVER['REQUEST_METHOD']
を渡すことができます。実際、param変数の型の記述は次のように簡略化できます:
echo I('param.id');
2. 変数のフィルタリング
echo I('param.1'); // 输出2013 echo I('param.2'); // 输出06 echo I('param.3'); // 输出01。 次に設定します:
I('id'); // 等同于 I('param.id') I('name'); // 等同于 I('param.name')If 複数のフィルタリングを実行する必要がある場合は、次を使用できます:
function filter_default(&$value){ $value = htmlspecialchars($value); }
'VAR_FILTERS'=>'filter_default'つまり、I メソッドのすべての取得変数は htmlspecialchars によってフィルタリングされます。 :
'VAR_FILTERS'=>'filter_default,filter_exp'同様に、このパラメーターは次のような複数のフィルターもサポートできます。
'DEFAULT_FILTER' => 'htmlspecialchars'
I('get.name'); // 等同于 htmlspecialchars($_GET['name'])I メソッドを使用するときにフィルター方法を指定する場合、DEFAULT_F ILTERは設定は無視されます。例:
'DEFAULT_FILTER' => 'strip_tags,htmlspecialchars'I メソッドの 3 番目のパラメーターが関数名で渡される場合、変数をフィルターしてそれを返す関数を呼び出します (変数が配列の場合、 array_map はフィルタリング処理に自動的に使用されます)、それ以外の場合は、PHP の組み込みの filter_var メソッドがフィルタリング処理に呼び出されます。例:
I('get.name'); // 等同于 htmlspecialchars(strip_tags($_GET['name']))は、$_POST['email'] がフォーマットされることを意味します。要件を満たしていない場合は、空の文字列が返されます。
(その他の検証形式については、filter_var の使用に関する公式マニュアルを参照してください。)
または、次の文字識別方法を使用することもできます:echo I('get.name','','strip_tags'); // 等同于 strip_tags($_GET['name'])サポートされているフィルター名は、filter_list メソッドの有効な値である必要があります。 (サーバー環境によって異なる場合があります)、サポートされている可能性のあるものは次のとおりです:
I('post.email','',FILTER_VALIDATE_EMAIL);一部の特殊なケースでは、フィルタリングを実行したくない場合があります。DEFAULT_FILTER が設定されている場合でも、使用できます:
I('post.email','','email');
http://www.bkjia.com/PHPjc/825333.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/825333.htmlTechArticleThinkPHP の I メソッドは、多くの 1 文字関数の新しいメンバーです、その名前は英語の入力 (input) に由来しており、主にシステム入力変数をより便利かつ安全に取得するために使用され、あらゆる用途に使用できます...