1、入口文件中定义的内容,说出3点
1. 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
2. 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
3. 定义应用目录
define('APP_PATH','./Application/');
4. 仅用于生成新模块,生成后立刻注释掉
define('BIND_MODULE','Admin');
4. 定义根目录的绝对地址
define('ROOT',str_replace("\\","/",dirname(__FILE__)));
5. 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
2、U方法的参数规则
U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
3、如何判断请求类型,常用的请求方式有哪两种,I方法的参数规则?
1.$_SERVER['REQUEST_METHOD']
2.post请求与get请求
3.I('变量类型.变量名',['默认值'],['过滤方法'],['额外数据源'])
4、成功和失败的跳转的方法以及参数规则
1.success('提示信息','跳转地址',跳转时间) success方法的默认跳转地址是$_SERVER["HTTP_REFERER"]
2.error('提示信息','跳转地址',跳转时间) error方法的默认跳转地址是javascript:history.back(-1)
5、URL的四种模式,简述每种形式的规则
1.普通模式 http://localhost/?模块=home&控制器=user&操作=login&var=value
2.PATHINFO模式 http://localhost/index.php/home/user/login/var/value/
3.REWRITE模式 http://localhost/home/user/login/var/value
4.兼容模式 http://localhost/?s=/home/user/login/var/value
6、TP常用的配置文件有哪几个?配置文件的加载顺序依次是什么?
1) 惯例配置文件(位于ThinkPHP/Conf/convention.php
)
公共配置文件(默认位于Application/Common/Conf/config.php
)
调试配置文件(位于ThinkPHP/Conf/debug.php
)和应用调试配置文件(位于Application/Common/Conf/debug.php
)
2) 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置
7、模版渲染display方法的参数规则
display('[模板文件]'[,'字符编码'][,'输出类型'])
用法 | 描述 |
---|---|
不带任何参数 | 自动定位当前操作的模板文件 |
[模块@][控制器:][操作] | 常用写法,支持跨模块 模板主题可以和theme方法配合 |
完整的模板文件名 | 直接使用完整的模板文件名(包括模板后缀) |
8、常用的模版内置标签以及在模版中使用的示例,举出5个!
<volist name="list" id="data">{$data['id']}<br/></volist>
<foreach name="list" item="vo" >{$vo['id']}</foreach>
<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" ></for>
<switch name="变量" ><case value="值1" break="0或1">输出内容1</case><case value="值2">输出内容2</case><default />默认情况</switch>
<eq name="name" value="value">相等<else/>不相等</eq>
<if condition="($name eq 1) OR ($name gt 100) "> value1<elseif condition="$name eq 2"/>value2<else /> value3</if>
<empty name="name">name为空<else /> name不为空</empty>
<in name="id" value="1,2,3">id在范围内<else/>id不在范围内</in>
9、模版包含的参数规则以及举例说明
<include file='模版表达式或者模版文件1,模版表达式或者模版文件2,...' />
<include file="Public/header,Public/menu" />
10、三大自动的参数规则
字段映射 protected $_map = array( 'name' =>'username', // 把表单中name映射到数据表的username字段 'mail' =>'email', // 把表单中的mail映射到数据表的email字段);
自动验证 protected $_validate = array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), );}
自动完成 protected $_auto = array ( array(完成字段1,完成规则,[完成条件,附加规则]));
11、举例描述上传类在控制器中调用的全过程代码(要求包含控制器的代码以及模型类新增数据到数据库的全部代码),并说明表单中需要注意的内容!
控制器
public function addUsers(){
if(IS_POST){
$pic = $this->doUpload();
$_POST['avatar'] = $pic['avatar'];
}else{
$this->display();
}
}
模型类
public function doUpload(){
if (empty($config)) {
$config = array(
'maxSize' => 3145728,
'rootPath' => './Public/', //保存根路径,一定要重新设置,否则无法找到根路径
'savePath' => 'Uploads/',
'saveName' => array('uniqid', ''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date', 'Ymd'),
);
}
$upload = new \Think\Upload($config);
$info = $upload->upload();
if(!$info){
$this->error = $upload->getError();
return false;
}
foreach($info as $key=>$v){
$pic[$key] = $v['savepath'].$v['savename'];
}
return $pic;
}
注意的内容:
1)$upload->
rootPath
= './Public/Uploads/'; // 设置附件上传目录
更改为 'rootPath' => './Public/',
'savePath' => 'Uploads/'
//保存根路径,一定要重新设置,否则无法找到根路径
2)表单中加 enctype="multipart/form-data"