ThinkPHP是单一入口框架。即:在一个网站中,所有的请求都指向同一个脚本文件。
使用PHP创建项目:
新建一个项目,在index.php文件中:
<?php
define('APP_NAME', 'app');
define('APP_PATH', './APP/');
require('./ThinkPHP/ThinkPHP.php');
配置文件:config.php
若自定义一个配置文件,需要在config.php中:
'LOAD_EXT_CONFIG'=>'user',// 'user'即配置文件user.php
调用配置文件中的属性:
echo C('sex');
U('地址','参数','伪静态','是否跳转','显示域名');
U('模块/方法', array('id'=>1)), 'xxxx html htm sthml', true/false, 'localhost')
一般是用到前面两个就差不多了
U('模块/方法',array('id'=>1),'html',true/false,'localhost');
第二个参数是传参的值
第三个参数是后缀名,一般为html,htm,shtml
第四个参数是是否需要跳转,通常设为false,不需要跳转
第五个参数是域名
四种URL模式
0 普通模式 http://localhost/test/index.php?m=Index&a=index&id=1
1.PATHINFO模式 http://localhost/test/index.php/Index/index/id/1.html
2.重写模式 http://localhost/test/Index/index/id/1.html
3.兼容模式 http://localhost/test/index.php?s=/Index/index/id/1.html
设置多个伪静态 URL_HTML_SUFFIX=html|shtml|xml,用|分隔多个伪静态后缀
自定义公共函数:
放到App\Home\Common目录下,并取名为function.php才能被正确识别
调用模板时使用$this->display();
调用建立好的模板 $this->display('test');
$this->display()会默认调用相应与控制器同名的tpl文件夹下的html文件
模板的赋值和输出:$this->assign('name',$name)->('sex','man');//可连续赋值
html页面取值:
{$me['name']}//数组的方式
{$me.name}//类java的方式
{//$me.name}//注释方式
{$me.sex|default='man'}//模型没有定义变量时,可以用这个方式临时赋值
{$me['age']+1}//必须用数组的方式进行运算
在模板文件中调用函数:
{$me['name']|md5|substr=0,5}
{$now|date='Y-m-d H:i:s',###}
在模板文件中调用系统变量:
时间戳 {$Think.now}
版本 {$Think.version}
{$Think.server.http_host}
$person=array( //定义一个数组
1=>array('name'=>'jack','age'=>'18'),
2=>array('name'=>'Tom','age'=>'19'),
3=>array('name'=>'Peter','age'=>'20'),
4=>array('name'=>'Mary','age'=>'21'),
);
$this->assign('person',$person); //将数组传输给模版
//展示数组所用函数,看起来很像HTML标签,但是不是.offset开始截取的第几个数据条,length截取的条数
//当name不为person时无法输出,id不为data时只输出非定义量(HTML内容)部分
<volist name='person' id='data' offset='1' length='2' empty='我没数据'>
{$data['name']}----{$data['age']}<br>
</volist>
//foreach函数不能直接进行截取,只能通过外部的方法进行
//当name不为person时无法输出,当item不为data时重复输出最后一个至数组长度耗尽
<foreach name='person' item='data'>
{$data['name']}----{$data['age']}<br>
</foreach>
模板for循环:
<for start='1' end='10' comparison='elt' name='k'>
{$k}<br/>
</for>
eq = ; neq != ; gt > ; egt >=; lt <; elt <=; heq ===; nheq!==
模板if语句:
<if condition='$number gt 10'>number 大于10
<elseif condition='$number lt 10' /> number 小于10
<else/> number 等于10
</if>
模板switch语句:
<switch name='name'>
<case value='jack'>hello</case>
<case value='tom/lili'>hi</case>
<default>no hi</default>
</switch>
模板比较标签:
<eq name='num' value='10'>num = 10 <else/>num != 10</eq><br/>
<neq name='num' value='10'>name != 10</neq><br/>
<compare name='num' value='10' type='eq'>num = 10 <else/>num != 10</compare><br/>
模板区间标签:
<in name='num' value='1,2,3'>zai<else/>bu zai</in>
<between name='num' value='1,10'>zai<else/>bu zai</between>
<range name='num' value='1,2,3' type='in'>zai<else/>bu zai</range>
模板三元运算符:
{$num>11?'大于':'小于'}
html中php原生态写法:
<php>echo $name.'年龄是'.$num.'岁';</php><br />
标签:index,name,框架,10,简介,html,ThinkPHP,php,模板 From: https://blog.51cto.com/u_16240770/7279009