thinkphp3.2.3学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2框架初始的目录结构如下:
1. 部署目录(或者子目录)
2. ├─index.php 入口文件
3. ├─README.md README文件
4. ├─Application 应用目录
5. ├─Public 资源文件目录
6. └─ThinkPHP 框架目录
3.2版本自带了一个完整的应用目录结构和默认的应用入口文件。其中,Application 和Public 目录下面都是空的。
README.md文件仅用于说明,实际部署的时候可以删除。
上面的目录结构和名称是可以改变的,这取决于你的入口文件和配置参数。
Application目录默认是空的,但是第一次访问入口文件会自动生成,参考后面的入口文件部分。
其中框架目录ThinkPHP的结构如下:
1. ├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
2. │├─Common 核心公共函数目录
3. │├─Conf 核心配置目录
4. │├─Lang 核心语言包目录
5. │├─Library 框架类库目录
6. ││├─Think 核心Think类库包目录
7. ││├─Behavior 行为类库目录
8. ││├─Org Org类库包目录
9. ││├─Vendor 第三方类库目录
10. ││├─... 更多类库目录
11. │├─Mode 框架应用模式目录
12. │├─Tpl 系统模板目录
13. │├─LICENSE.txt 框架授权协议文件
14. │├─logo.png 框架LOGO文件
15. │├─README.txt 框架README文件
16. │└─index.php 框架入口文件
上述应用的目录结构只是默认设置,事实上,在实际部署应用的时候,我们建议除了应用入口文件
和Public 资源目录外,其他文件都放到非WEB目录下面,具有更好的安全性。
入口文件:
define('APP_PATH','./Apps/');
define('DIR_SECURE_', 'default.html');//支持多个安全文件写入define('DIR_SECURE_', 'index.html,index.htm');//默认的安全文件只是写入一个空白字符串,如果需要写入其他内容,可以通过DIR_SECURE_CONTENT参
数来指定define('DIR_SECURE_CONTENT', 'deney Access!');
define('RUNTIME_PA TH','./Runtime/');
define('APP_DEBUG',True);
define('THINK_PA TH',realpath('../Think').'/');
require THINK_PATH.'ThinkPHP.php';//require './ThinkPHP/ThinkPHP.php';
*配置文件的定义格式均采用返回PHP数组的方式
*惯例配置文件(位于ThinkPHP/Conf/convention.php)
*应用配置文件调用所有模块之前都会首先加载的公共配置文件(默认位于Application/Common/Conf/config.php)
获取已经设置的参数值:C('参数名称')
设置新的值:C('参数名称','新的参数值');
扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样。设置扩展配置的方式
如下(多个文件用逗号分隔):
// 加载扩展配置文件
'LOAD_EXT_CONFIG' => 'user,db',
获取变量
I('变量类型.变量名',['默认值'],['过滤方法'])
变量类型含义
get 获取GET参数
post 获取POST参数
param 自动判断请求类型获取GET、POST或者PUT参数
request 获取REQUEST 参数
put 获取PUT 参数
session 获取$_SESSION 参数
cookie 获取$_COOKIE 参数
server 获取$_SERVER 参数
globals 获取$GLOBALS参数
echo I('get.id'); // 相当于$_GET['id']
echo I(''); // 相当于$_GET['name']
echo I('get.id',0); // 如果不存在$_GET['id'] 则返回0
echo I('',''); // 如果不存在$_GET['name'] 则返回空字符串
采用方法过滤:
// 采用htmlspecialchars方法对$_GET['name'] 进行过滤,如果不存在则返回空字符串echo I('','','htmlspecialchars');
// 获取整个$_GET 数组
I('get.');
由于param类型是I函数默认获取的变量类型,因此事实上param变量类型的写法可以简化为:
I('id'); // 等同于I('param.id')
I('name'); // 等同于I('')
param类型变量还可以用数字索引的方式获取URL参数(必须是PA THINFO模式参数有效,无论是GET还
是POST方式都有效),例如:当前访问URL地址是
那么我们可以通过
echo I('param.1'); // 输出2013
echo I('param.2'); // 输出06
echo I('param.3'); // 输出01
// 下面两种方式都不采用任何过滤方法
I('','','');
I('get.id','',false);
判断请求类型
常量说明
IS_GET 判断是否是GET方式提交
IS_POST 判断是否是POST方式提交
IS_PUT 判断是否是PUT方式提交
IS_DELETE 判断是否是DELETE方式提交
IS_AJAX 判断是否是AJAX提交
REQUEST_METHOD 当前提交类型
AJAX返回
$data = 'ok';
$this->ajaxReturn($data);
$(function(){
$('button').bind('click',function(){
$.get('__URL__/getajax/id/{$_GET['id']}',function(jdate){
if(jdate.status==1)
{
$('.about_c p b').html(jdate.data)
}
})
})
})