旗下导航:搜·么
当前位置:网站首页 > PHP框架 > ThinkPHP > 正文

tinkphp大写字母函数怎样用【ThinkPHP教程】

作者:搜搜PHP网发布时间:2019-11-27分类:ThinkPHP浏览:72


导读:ThinkPHP大写字母函数总结:A要领A要领用于在内部实例化控制器挪用花样:A(‘[项目://][分组/]模块’,’控制器层称号’)最简朴的用法:...

ThinkPHP 大写字母函数总结:

A要领

A要领用于在内部实例化控制器

挪用花样:A(‘[项目://][分组/]模块’,’控制器层称号’)

最简朴的用法:

$User = A('User');

示意实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php),假如采纳了分组情势,而且要实例化别的一个Admin分组的控制器能够用:

$User = A('Admin/User');

也支撑跨项目实例化(项目的目次要坚持同级)

$User = A('Admin://User');

示意实例化Admin项目下面的UserAction控制器

3.1版本增添了分层控制器的支撑,所以还能够用A要领实例化其他的控制器,比方:

$User = A('User','Event);

实例化UserEvent控制器(对应的文件位于Lib/Event/UserEvent.class.php)。

实例化控制器后,就能够挪用该控制器中的要领,不过须要注重的状况是,在跨项目挪用的状况下,假如你的操纵要领 有针对当前控制器的特别变量操纵,会有一些未知的题目,所以,平常来说,官方发起须要大众挪用的控制器层零丁开辟,不要有太多的依靠关联。

B要领

这是跟着行动应运而生的重生函数,能够实行某个行动,比方

B('app_begin');

就是在项目最先之前,实行这个行动定义的一切函数。支撑2个参数,第二个参数支撑须要接收一个数组,比方

B('app_begin',array("name"=& gt;"tdweb","time"=>time()));

C要领

C要领是ThinkPHP用于设置、猎取,以及保留设置参数的要领,运用频次较高。

相识C要领须要起首相识下ThinkPHP的设置,因为C要领的一切操纵都是缭绕设置相干的。ThinkPHP的设置文件采纳PHP数组花样定义。

因为采纳了函数重载设想,所以用法较多,我们来逐一申明下。

设置参数

C('DB_NAME','thinkphp');

示意设置DB_NAME设置参数的值为thinkphp,因为设置参数不辨别大小写,所以下面的写法也是一样:

C('db_name','thinkphp');

然则发起坚持一致大写的设置定义范例。

项目的一切参数在未见效之前都能够经由过程该要领动态转变设置,末了设置的值会掩盖前面设置或许通例设置内里的定义,也能够运用参数设置要领增添新的设置。

支撑二级设置参数的设置,比方:

C('USER.USER_ID',8);

设置参数不发起凌驾二级。

假如要设置多个参数,能够运用批量设置,比方:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config);

假如C要领的第一个参数传入数组,就示意批量赋值,上面的赋值相当于:

C('USER_ID',1);
C('USER_TYPE',1);

猎取参数

要猎取设置的参数,能够用:

$userId = C('USER_ID');
$userType = C('USER_TYPE');

假如USER_ID参数还没有定义过,则返回NULL。

也能够支撑猎取二级设置参数,比方:

$userId = C('USER.USER_ID');

假如传入的设置参数为空,示意猎取悉数的参数:

$config = C();

保留设置

3.1版本增添了一个永远保留设置参数的功用,仅针对批量赋值的状况,比方:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config,'name');

在批量设置了config参数后,会连同当前一切的设置参数保留到缓存文件(或许其他设置的缓存体式格局)。

保留以后,假如要取回保留的参数,能够用

$config = C('','name');

个中name就是前面保留参数时用的缓存的标识,必需一致才准确取回保留的参数。取回的参数会和当前的设置参数兼并,无需手动兼并。

D要领

D要领用于实例化自定义模子类

是ThinkPHP框架对Model类实例化的一种封装,并完成了单例情势,支撑跨项目和分组挪用,挪用花样以下:

D(‘[项目://][分组/]模子’,’模子层称号’)

要领的返回值是实例化的模子对象。

D要领能够自动检测模子类,假如存在自定义的模子类,则实例化自定义模子类,假如不存在,则会实例化Model基类,同时关于已实例化过的模子,不会反复去实例化。

D要领最经常使用的用法就是实例化当前项目的某个自定义模子,比方:

// 实例化User模子
$User = D('User');

会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,所以,实际上的代码能够和下面的等效:

import('@.Model.UserModel');
$User = new UserModel();

然则假如运用D要领的话,假如这个UserModel类不存在,则会自动挪用

new Model('User');

而且第二次挪用的时刻无需再次实例化,能够削减肯定的对象实例化开支。

D要领能够支撑跨分组和项目实例化模子,比方:

//实例化Admin项目的User模子
D('Admin://User')
 //实例化Admin分组的User模子
D('Admin/User')

注重:要完成跨项目挪用模子的话,必需确保两个项目的目次构造是并列的。

3.1版本最先,因为增添了分层模子的支撑,所以D要领也能够实例化其他的模子,比方:

// 实例化UserService类
$User = D('User','Service');
 // 实例化UserLogic类
$User = D('User','Logic');
D('User','Service');

会导入Lib/Service/UserService.class.php,并实例化,等效于下面的代码:

import('@.Service.UserService');
$User = new UserSerivce();

相干引荐:《ThinkPHP教程》

F要领

F要领是S要领的一个子集功用,仅用于简朴数据缓存。

我们已相识了ThinkPHP中的S要领的用法,F要领实际上是S要领的一个子集功用,仅用于简朴数据缓存,而且只能支撑文件情势,不支撑缓存有用期,因为采纳的是PHP返回体式格局,所以其效力较S要领较高,因而我们也称之为疾速缓存要领。

F要领的特性是:

·简朴数据缓存;

·文件情势保留;

·采纳PHP返回数据体式格局加载缓存;

·支撑子目次缓存以及自动建立;

·支撑删除缓存和批量删除;

写入和读取缓存

F('data','test data');

默许的保留肇端途径是DATA_PATH(该常量在默许设置位于RUNTIME_PATH.’Data/’下面),也就是说会生成文件名为DATA_PATH.’data.php’的缓存文件。

注重:确保你的缓存标识的唯一,防备数据掩盖和争执。

下次读取缓存数据的时刻,运用:

$Data = F('data');

我们能够采纳子目次体式格局保留,比方:

F('user/data',$data); // 缓存写入
F('user/data'); // 读取缓存

就会生成DATA_PATH.’user/data.php’ 缓存文件,假如user子目次不存在的话,则会自动建立,也能够支撑多级子目次,比方:

F('level1/level2/data',$data);

假如须要指定缓存的肇端目次,能够用下面的体式格局:

F('data',$data,TEMP_PATH);

猎取的时刻则须要运用:

F('data','',TEMP_PATH);

删除缓存

删除缓存也很简朴,运用:

F('data',NULL);

第二个参数传入NULL,则示意删除标识为data的数据缓存。

支撑批量删除功用,尤其是针对子目次缓存的状况,假定我们要删除user子目次下面的一切缓存数据,能够运用:

F('user/*',NULL);

又或许运用过滤前提删除,比方:

F('user/[^a]*',NULL);

G要领

G要领的作用包含标记位置和区间统计两个功用

Thinkphp长期以来须要经由过程debug_start、debug_end要领以至Debug类才完成的功用,3.1版本中被一个简朴的G要领庖代了,不可不谓是一次华美升级。

G要领的作用包含标记位置和区间统计两个功用,下面来看下细致用法:

标记位置

G要领的第一个用法就是标记位置,比方:

G('begin');

示意把当前位置标记为begin标签,而且纪录当前位置的实行时候,假如环境支撑的话,还能纪录内存占用状况。能够在任何位置挪用G要领标记。

运转时候统计

标记位置后,我们就能够再次挪用G要领举行区间统计了,比方:

G('begin');
// ...其他代码段
G('end');
// ...或许这里另有其他代码
// 举行统计区间
echo G('begin','end').'s';

G(‘begin’,’end’) 示意统计begin位置到end位置的实行时候(单元是秒),begin必需是一个已标记过的位置,假如这个时刻end位置还没被标记过,则会自动把当前位置标记为end标签,输出的结果类似于:

0.0056s

默许的统计精度是小数点后4位,假如以为这个统计精度不够,还能够设置比方:

G('begin','end',6).'s';

能够的输出会变成:

0.005587s

内存开支统计

假如你的环境支撑内存占用统计的话,还能够运用G要领举行区间内存开支统计(单元为kb),比方:

echo G('begin','end','m').'kb';

第三个参数运用m示意举行内存开支统计,输出的结果多是:

625kb

一样,假如end标签没有被标记的话,会自动把当前位置先标记位end标签。

假如环境不支撑内存统计,则该参数无效,依然会举行区间运转时候统计。

忘记debug_start、debug_end吧,大道至简,你懂的~

I要领

重要用于越发轻易和平安的猎取体系输入变量。

ThinkPHP的I要领是3.1.3版本新增的,假如你是之前的3.*版本的话,能够直接参考运用3.1疾速入门教程系列的变量部份。

概述

正如你所见到的一样,I要领是ThinkPHP浩瀚单字母函数中的新成员,其定名来自于英文Input(输入),重要用于越发轻易和平安的猎取体系输入变量,能够用于任何地方,用法花样以下:

I(‘变量范例.变量名’,[‘默许值’],[‘过滤要领’])

变量范例是指请求体式格局或许输入范例,包含:

注重:变量范例不辨别大小写。

变量名则严厉辨别大小写。

默许值和过滤要领均属于可选参数。

用法

我们以GET变量范例为例,申明下I要领的运用:

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'] 则返回空字符串

采纳要领过滤:

echo I('get.name','','htmlspecialchars'); // 采纳htmlspecialchars要领对$_GET['name'] 举行过滤,假如不存在则返回空字符串

支撑直接猎取全部变量范例,比方:

I('get.'); // 猎取全部$_GET 数组

用一样的体式格局,我们能够猎取post或许其他输入范例的变量,比方:

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');

假如当前请求范例是GET,那末等效于 GET[′id′],假如当前请求范例是POST或许PUT,那末相当于猎取

_POST[‘id’] 或许 PUT参数id。

而且param范例变量还能够用数字索引的体式格局猎取URL参数(必需是PATHINFO情势参数有用,无论是GET照样POST体式格局都有用),比方:

当前接见URL地点是

http://serverName/index.php/New/2013/06/01

那末我们能够经由过程

echo I('param.1'); // 输出2013
echo I('param.2'); // 输出06
echo I('param.3'); // 输出01

事实上,param变量范例的写法能够简化为:

I('id'); // 等同于 I('param.id')
I('name'); // 等同于 I('param.name')

变量过滤

运用I要领的时刻 变量实在经过了两道过滤,起首是全局的过滤,全局过滤是经由过程设置VAR_FILTERS参数,这里肯定要注重,3.1版本以后,VAR_FILTERS参数的过滤机制已变动成采纳array_walk_recursive要领递归过滤了,重要对过滤要领的请求是必需援用返回,所以这里设置htmlspecialchars是无效的,你能够自定义一个要领,比方:

function filter_default(&$value){
    $value = htmlspecialchars($value);
 }

然后设置:

'VAR_FILTERS'=>'filter_default'

假如须要举行屡次过滤,能够用:

'VAR_FILTERS'=>'filter_default,filter_exp'

filter_exp要领是框架内置的平安过滤要领,用于防备运用模子的EXP功用举行注入进击。

因为VAR_FILTERS参数设置的是全局过滤机制,而且采纳的是递归过滤,对效力有所影响,所以,我们更发起直接对猎取变量过滤的体式格局,除了在I要领的第三个参数设置过滤要领外,还能够采纳设置DEFAULT_FILTER参数的体式格局设置过滤,事实上,该参数的默许设置是:

'DEFAULT_FILTER'=> 'htmlspecialchars'

也就说,I要领的一切猎取变量都邑举行htmlspecialchars过滤,那末:

I('get.name'); // 等同于 htmlspecialchars($_GET['name'])

一样,该参数也能够支撑多个过滤,比方:

'DEFAULT_FILTER'=> 'strip_tags,htmlspecialchars'
I('get.name'); // 等同于 htmlspecialchars(strip_tags($_GET['name']))

假如我们在运用I要领的时刻 指定了过滤要领,那末就会疏忽DEFAULT_FILTER的设置,比方:

echo I('get.name','','strip_tags'); // 等同于 strip_tags($_GET['name'])

I要领的第三个参数假如传入函数名,则示意挪用该函数对变量举行过滤并返回(在变量是数组的状况下自动运用array_map举行过滤处置惩罚),不然会挪用PHP内置的filter_var要领举行过滤处置惩罚,比方:

I('post.email','',FILTER_VALIDATE_EMAIL);

示意 会对$_POST[‘email’] 举行 花样考证,假如不符合请求的话,返回空字符串。

(关于更多的考证花样,能够参考 官方手册的filter_var用法。)

或许能够用下面的字符标识体式格局:

I('post.email','','email');

能够支撑的过滤称号必需是filter_list要领中的有用值(差别的服务器环境能够有所差别),能够支撑的包含:

int
 boolean
 float
validate_regexp
validate_url
validate_email
validate_ip
 string
stripped
encoded
special_chars
unsafe_raw
email
url
number_int
number_float
magic_quotes
callback

在有些特别的状况下,我们不愿望举行任何过滤,纵然DEFAULT_FILTER已有所设置,能够运用:

I('get.name','',NULL);

一旦过滤参数设置为NULL,即示意不再举行任何的过滤。

L要领

L要领用于启用多言语的状况下,设置和猎取当前的言语定义

挪用花样:L(‘言语变量’[,’言语值’])

设置言语变量

除了运用言语包定义言语变量以外,我们能够用L要领动态设置言语变量,比方:

L('LANG_VAR','言语定义');

言语定义不辨别大小写,所以下面也是等效的:

L('lang_var','言语定义');

不过范例起见,我们发起一致采纳大写定义言语变量。

L要领支撑批量设置言语变量,比方:

$lang['lang_var1'] = '言语定义1';
$lang['lang_var2'] = '言语定义2';
$lang['lang_var3'] = '言语定义3';
L($lang);

示意同时设置3个言语变量lang_var1 lang_var2和lang_var3。

猎取言语变量

$langVar = L('LANG_VAR');

或许:

$langVar = L('lang_var');

假如参数为空,示意猎取当前定义的悉数言语变量(包含言语定义文件中的):

$lang = L();

或许我们也能够在模板中运用

{$Think.lang.lang_var}

来输出言语定义。

M要领

M要领用于实例化一个基础模子类

M要领用于实例化一个基础模子类,和D要领的区分在于:

1、不须要自定义模子类,削减IO加载,机能较好;

2、实例化后只能挪用基础模子类(默许是Model类)中的要领;

3、能够在实例化的时刻指定表前缀、数据库和数据库的衔接信息;

D要领的壮大则表现在你封装的自定义模子类有多强,不过跟着新版ThinkPHP框架的基础模子类的功用愈来愈壮大,M要领也比D要领愈来愈实用了。

M要领的挪用花样:

M(‘[基础模子名:]模子名’,’数据表前缀’,’数据库衔接信息’)

我们来看下M要领细致有哪些用法:

1、实例化基础模子(Model) 类

在没有定义任何模子的时刻,我们能够运用下面的要领实例化一个模子类来举行操纵:

//实例化User模子
$User = M('User');
//实行其他的数据操纵
$User->select();

这类要领最简朴高效,因为不须要定义任何的模子类,所以支撑跨项目挪用。瑕玷也是因为没有自定义的模子类,因而没法写入相干的营业逻辑,只能完成基础的CURD操纵。

$User = M('User');

实在等效于:

$User = new Model('User');

示意操纵think_user表。M要领和D要领一样也有单例功用,屡次挪用并不会反复实例化。M要领的模子名参数在转换成数据表的时刻会自动转换成小写,也就是说ThinkPHP的数据表定名范例是全小写的花样。

2、实例化其他大众模子类

第一种体式格局实例化因为没有模子类的定义,因而很难封装一些分外的逻辑要领,不过大多数状况下,或许只是须要扩大一些通用的逻辑,那末就能够尝试下面一种要领。

$User = M('CommonModel:User');

改用法实在等效于:

$User = new CommonModel('User');

因为体系的模子类都能够自动加载,因而我们不须要在实例化之前手动举行类库导入操纵。模子类CommonModel必需继续Model。我们能够在CommonModel类内里定义一些通用的逻辑要领,就能够省去为每一个数据表定义细致的模子类,假如你的项目已有凌驾100个数据表了,而大多数状况都是一些基础的CURD操纵的话,只是平常模子有一些庞杂的营业逻辑须要封装,那末第一种体式格局和第二种体式格局的连系是一个不错的挑选。

3、传入表前缀、数据库和其他信息

M要领有三个参数,第一个参数是模子称号(能够包含基础模子类和数据库),第二个参数用于设置数据表的前缀(留空则取当前项目设置的表前缀),第三个参数用于设置当前运用的数据库衔接信息(留空则取当前项目设置的数据库衔接信息),比方:

$User = M('db2.User','think_');

示意实例化Model模子类,并操纵db2数据库中的think_user表。

假如第二个参数留空或许不传,示意运用当前项目设置中的数据表前缀,假如操纵的数据表没有表前缀,那末能够运用:

$User = M('db1.User',null);

示意实例化Model模子类,并操纵db1数据库中的user表。

假如你操纵的数据库须要差别的用户账号,能够传入数据库的衔接信息,比方:

$User = M('User','think_','mysql://user_a:1234@localhost:3306/thinkphp')

示意基础模子类用Model,然后对think_user表举行操纵,用user_a账号举行数据库衔接,操纵数据库是thinkphp。

第三个衔接信息参数能够运用DSN设置或许数组设置,以至能够支撑设置参数。

比方,在项目设置文件中设置了:

'DB_CONFIG'=>'mysql://user_a:1234@localhost:3306/thinkphp';

则能够运用:

$User = M('User','think_','DB_CONFIG');

基础模子类和数据库能够一同运用,比方:

$User = M('CommonModel:db2.User','think_');

假如要实例化分层模子的话,运用大众模子类的体式格局,我们能够运用:

M('UserLogic:User');

来实例化UserLogic,虽然如许做的意义不大,因为能够用

D('User','Logic');

完成一样的功用。

N要领

N要领属于计数器要领

被用于中心的查询、缓存统计的计数和统计。然则实在能够用于运用的其他计数用处,用法比较简朴,挪用花样:

N(‘计数位置’[,’步进值’])

比方,我们要统计页面中的查询次数,能够用

N('read',1);

示意每次实行到该位置都邑引发计数器加1,到页面终了之前,我们就能够用

$count = N('read');

来统计当前页面实行的查询数量。

假如你愿望计数器每次增添5,那末能够转变步进值,比方:

N('score',5);

须要注重的是,N要领页面实行终了后的统计结果不会带入下次统计。

R要领

R要领用于挪用某个控制器的操纵要领,是A要领的进一步加强和补充

R要领的挪用花样:

R(‘[项目://][分组/]模块/操纵’,’参数’,’控制器层称号’)

比方,我们定义了一个操纵要领为:

class UserAction extends Action {
    public function detail($id){
        return M('User')->find($id);
    }
 }

那末就能够经由过程R要领在其他控制器内里挪用这个操纵要领(平常R要领用于跨模块挪用)

$data = R('User/detail',array('5'));

示意挪用User控制器的detail要领(detail要领必需是public范例),返回值就是查询id为5的一个用户数据。假如你要挪用的操纵要领是没有任何参数的话,第二个参数则能够留空,直接运用:

$data = R('User/detail');

也能够支撑跨分组和项目挪用,比方:

R('Admin/User/detail',array('5'));

示意挪用Admin分组下面的User控制器的detail要领。

R('Admin://User/detail',array('5'));

示意挪用Admin项目下面的User控制器的detail要领。

官方的发起是不要在统一层多太多挪用,会引发逻辑的杂沓,被大众挪用的部份应当封装成零丁的接口,能够借助3.1的新特征多层控制器,零丁增添一个控制器层用于接口挪用,比方,我们增添一个Api控制器层,

class UserApi extends Action {
    public function detail($id){
        return M('User')->find($id);
    }
 }

然后,运用R要领挪用

$data = R('User/detail',array('5'),'Api');

也就是说,R要领的第三个参数支撑指定挪用的控制器层。

同时,R要领挪用操纵要领的时刻能够支撑操纵后缀设置C(‘ACTION_SUFFIX’),假如你设置了操纵要领后缀,依然不须要变动R要领的挪用体式格局。

S要领

S要领还支撑对当前的缓存体式格局传入缓存参数

比方:

S('data',$Data,3600,'File',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));

经测试,如许运用 只要前三个参数有用,背面的均无效

{ 'File',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/')}

终究这么用:

S('data1',$list,array('prefix'=>aaa','expire'=>'3600','temp'=>RUNTIME_PATH.'temp/1236'));

猎取的时刻:

$sdata = S('data1','',array('prefix'=>'aaa','temp'=>RUNTIME_PATH.'temp/1236'));

T要领

T函数用于生成模板文件名

为了更轻易的输出模板文件,新版封装了一个T函数用于生成模板文件名。

用法:

T([资本://][模块@][主题/][控制器/]操纵,[视图分层])

T函数的返回值是一个完全的模板文件名,能够直接用于display和fetch要领举行衬着输出。

比方:

T('Public/menu');
// 返回 当前模块/View/Public/menu.html
T('blue/Public/menu');
// 返回 当前模块/View/blue/Public/menu.html
T('Public/menu','Tpl');
// 返回 当前模块/Tpl/Public/menu.html
T('Public/menu');
// 假如TMPL_FILE_DEPR 为 _ 返回 当前模块/Tpl/Public_menu.html
T('Public/menu');
// 假如TMPL_TEMPLATE_SUFFIX 为.tpl 返回 当前模块/Tpl/Public/menu.tpl
T('Admin@Public/menu');
// 返回 Admin/View/Public/menu.html
T('Extend://Admin@Public/menu');
// 返回 Extend/Admin/View/Public/menu.html (Extend目次取决于AUTOLOAD_NAMESPACE中的设置)

在display要领中直接运用T函数:

// 运用T函数输出模板
$this->display(T('Admin@Public/menu'));

T函数能够输出差别的视图分层模板。

U要领

U要领用于完成对URL地点的组装。

U要领用于完成对URL地点的组装,特性在于能够自动依据当前的URL情势和设置生成对应的URL地点,花样为:

U(‘地点’,’参数’,’伪静态’,’是不是跳转’,’显现域名’);

在模板中运用U要领而不是牢固写死URL地点的优点在于,一旦你的环境变化或许参数设置转变,你不须要变动模板中的任何代码。

在模板中的挪用花样须要采纳{:U(‘地点’, ‘参数’…)} 的体式格局。

基础用法

U要领的用法示例:

U('User/add') // 生成User模块的add操纵地点

也能够支撑分组挪用:

U('Home/User/add') // 生成Home分组的User模块的add操纵地点

固然,也能够只是写操纵名,示意挪用当前模块的

U('add') // 生成当前接见模块的add操纵地点

除了分组、模块和操纵名以外,我们也能够传入一些参数:

U('Blog/read?id=1') // 生成Blog模块的read操纵 而且id为1的URL地点

U要领的第二个参数支撑传入参数,支撑数组和字符串两种定义体式格局,假如只是字符串体式格局的参数能够在第一个参数中定义,下面几种体式格局都是等效的:

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

然则不允许运用下面的定义体式格局来传参数:

U('Blog/cate/cate_id/1/status/1')

依据项目的差别URL设置,一样的U要领挪用能够智能地对应发生差别的URL地点结果,比方针对:

U('Blog/read?id=1')

这个定义为例。

假如当前URL设置为一般情势的话,末了生成的URL地点是:

http://serverName/index.php?m=Blog&a=read&id=1

假如当前URL设置为PATHINFO情势的话,一样的要领末了生成的URL地点是:

http://serverName/index.php/Blog/read/id/1

假如当前URL设置为REWRITE情势的话,一样的要领末了生成的URL地点是:

http://serverName/Blog/read/id/1

假如你同时还设置了PATHINFO分隔符的话:

'URL_PATHINFO_DEPR'=>'_'

就会生成

http://serverName/Blog_read_id_1

假如当前URL设置为REWRITE情势,而且设置了伪静态后缀为html的话,一样的要领末了生成的URL地点是:

http://serverName/Blog/read/id/1.html

假如设置了多个伪静态支撑,那末会自动取第一个伪静态后缀增添到URL地点背面,固然你也能够手动在U要领内里指定要生成的伪静态后缀,比方:

U('Blog/read','id=1','xml')

就会生成

http://serverName/Blog/read/id/1.xml

路由支撑

U要领还能够支撑路由,假如我们定义了一个路由规则为:

'news/:id\d'=>'News/read'

那末能够运用

U('/news/1')

终究生成的URL地点是:

http://serverName/index.php/news/1

域名支撑

假如你的运用涉及到多个子域名的操纵地点,那末也能够在U要领内里指定须要生成地点的域名,比方:

U('Blog/read@blog.thinkki4.cn','id=1');

@背面传入须要指定的域名即可。

另外,U要领的第5个参数假如设置为true,示意自动识别当前的域名,而且会自动依据子域名布置设置APP_SUB_DOMAIN_DEPLOY和APP_SUB_DOMAIN_RULES自动婚配生成当前地点的子域名。

假如开启了URL_CASE_INSENSITIVE,则会一致生成小写的URL地点。

锚点支撑

3.1.2版本最先,U要领还能够支撑生成URL地点中的锚点,比方:

U('Blog/read#comment','id=1','html')

就会生成

http://serverName/Blog/read/id/1.html#comment

假如域名和锚点同时运用的话,注重递次为先锚点后域名,比方:

U('Blog/read#comment@blog','id=1');

以上就是tinkphp大写字母函数怎样用的细致内容,更多请关注ki4网别的相干文章!

标签:tinkphp大写字母函数