ThinkPHP의 I 메소드는 많은 단일 문자 함수 중 새로운 멤버로, 주로 시스템 입력 변수를 보다 편리하고 안전하게 가져오는 데 사용되며 어디서나 사용할 수 있습니다. 이 글에서는 ThinkPHP의 I 메소드를 주로 소개합니다.
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. USES :
I 메소드의 사용을 설명하기 위해 GET 변수 유형을 예제로 가져옵니다. 메서드 필터링:
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'] 进行过滤,如果不存在则返回空字符串
param 변수 유형은 현재 요청 유형의 자동 결정을 지원하는 프레임워크별 변수 획득 방법입니다. 예:
I('get.'); // 获取整个$_GET 数组
현재 요청 유형이 GET이면 이는 동일합니다. $_GET['id']로, 현재 요청 유형이 POST 또는 PUT인 경우 $_POST['id'] 또는 PUT 매개변수 ID를 가져오는 것과 같습니다.
그리고 매개변수 유형 변수는 숫자 인덱스를 사용하여 URL 매개변수를 얻을 수도 있습니다(PATHINFO 모드 매개변수는 GET이든 POST이든 유효해야 함). 예:
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. 변수 필터링
I 방법을 사용할 때 변수는 실제로 두 개의 필터를 거칩니다. 첫 번째는 전역 필터링입니다. VAR_FILTERS 매개변수를 구성하여 수행됩니다. 여기서 주목해야 할 점은 버전 3.1 이후에는 VAR_FILTERS 매개변수의 필터링 메커니즘입니다. array_walk_recursive 메서드를 사용하여 재귀 필터링으로 변경되었습니다. 예, 필터링 메서드의 주요 요구 사항은 참조로 반환되어야 한다는 것입니다. 따라서 여기에서 htmlspecialchars를 설정하는 것은 유효하지 않습니다. 예를 들어
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')
여러 필터링을 수행해야 하는 경우 다음을 사용할 수 있습니다.
function filter_default(&$value){ $value = htmlspecialchars($value); }
filter_exp 메서드는 프레임워크에 내장된 보안 필터링 메서드로, 다음과 같이 사용됩니다. 모델의 EXP 기능을 이용하여 인젝션 공격을 방지합니다.
'VAR_FILTERS'=>'filter_default'
'VAR_FILTERS'=>'filter_default,filter_exp'
마찬가지로 이 매개변수는 다음과 같은 여러 필터를 지원할 수도 있습니다.
'DEFAULT_FILTER' => 'htmlspecialchars'
I('get.name'); // 等同于 htmlspecialchars($_GET['name'])I 메서드를 사용할 때 필터링 방법을 지정하면 DEFAULT_FILTER 의지 설정은 무시하세요. 예:
'DEFAULT_FILTER' => 'strip_tags,htmlspecialchars'I 메서드의 세 번째 매개 변수가 함수 이름에 전달되면 함수를 호출하여 변수를 필터링하고 반환한다는 의미입니다(변수가 배열인 경우, 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'])
I('post.email','',FILTER_VALIDATE_EMAIL);
일부 특별한 경우에는 DEFAULT_FILTER가 설정된 경우에도 필터링을 수행하고 싶지 않으며 다음을 사용할 수 있습니다.
I('post.email','','email');
필터링 매개변수가 NULL로 설정되면 더 이상 필터링이 수행되지 않는다는 의미입니다.
Thinkphp
위 내용은 ThinkPHP의 I 메소드 활용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
