PHP开发实例大全(提高卷) 中文完整pdf扫描版[244MB]
__ROOT__: 根目录
__SELF__: 当前页面地址
__ACTION__: 2级 控制器地址 /index.php/index/page
__URL__: 1级 控制器地址 /index.php/index
__APP__: 输出app入口地址 /index.php
__PUBLIC__: 跟目录public目录
以上缩写仅适用于模板中使用
echo THINK_VERSION; 版本信息
C函数
C('DB_NAME','thinkphp'); 设置
C('DB_NAME'); 读取
C(); 读取全部
M函数
$User = M('User'); //实例化User模型 同等于 $User = new Model('User');
$User->select(); //执行其他的数据操作
G函数 // 统计区间内存使用情况
G('begin');
PHPcode
echo G('begin','end');
L函数
L('LANG_VAR','语言定义');//定义
L('LANG_VAR'); //读取
$lang['lang_var1'] = '语言定义1';
$lang['lang_var2'] = '语言定义2';
$lang['lang_var3'] = '语言定义3';
L($lang); //批量设置
$lang = L(); //读取全部
{$Think.lang.lang_var} //模板里使用
{:L('lang_var')}
如果更改语言包 需要删除本地cookie
要启用多语言功能,首先要下载多语言行为扩展(http://www.thinkphp.cn/extend/186.html),或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html) 里面也已经包含多语言行为扩展了,把下载后解压到的CheckLangBehavior.class.php 文件放入ThinkPHP/Extend/Behavior(如果没有请手动创建)目录下面。然后在项目的行为配置文件(Conf/tags.php)中 启用多语言行为,添加如下配置项:
return array(
'app_begin' => array('CheckLang') // 添加下面一行定义即可
);
项目config.php文件加入
'LANG_SWITCH_ON' => true, // 开启语言包功能
'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
'DEFAULT_LANG' => 'zh-cn', // 默认语言
'LANG_LIST' => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
'VAR_LANGUAGE' => 'l', // 默认语言切换变量
-----------------------------------------------------------------
$Model = new Model() // 实例化一个model对象 没有对应任何数据表
$Model->execute("update think_user set name='thinkPHP' where status=1");
$user = $Data->getBy字段名('值'); //查询字段名为值的所有记录
echo $Data->getFieldBy字段名('值','返回字段'); //查询字段名为值的 返回id值
-------------------------------------------------------------------
隐藏index.php
如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下
-
<IfModule mod_rewrite.c>
-
RewriteEngine on
-
RewriteCond %{REQUEST_FILENAME} !-d
-
RewriteCond %{REQUEST_FILENAME} !-f
-
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
-
</IfModule>
// 添加数据库配置信息 'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'thinkphp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => 3306, // 端口
'DB_PREFIX' => 'think_', // 数据库表前缀
获取变量
$id = $this->_get('id'); // 获取get变量
$this->_get("name","strip_tags"); //获取变量并执行函数
$this->_get("id","strip_tags",0);//不存在的默认是0
3.1.3 以上用
I('get.id');
I('get.name',''); // 如果不存在$_GET['name'] 则返回空字符串
I('get.name','','htmlspecialchars'); // 采用htmlspecialchars方法
I('get.'); // 获取整个$_GET 数组
I('param.id'); //自动判断类型
echo I('param.1'); // 参数1
echo I('param.2'); // 参数2
I('id'); //等于I('param.id')
模板技术
config.php 'TMPL_TEMPLATE_SUFFIX'=>'.tpl' 设置默认模板的扩展名
常量
!-Public-!: 会被替换成当前项目的公共模板目录 通常是 /项目目录/Tpl/当前主题/Public/
!-TMPL-!: 会替换成项目的模板目录 通常是 /项目目录/Tpl/当前主题/
(注:为了部署安全考虑,!-Public-!和!-TMPL-!不再建议使用)
!-PUBLIC-!:会被替换成当前网站的公共目录 通常是 /Public/
!-ROOT-!: 会替换成当前网站的地址(不含域名)
!-APP-!: 会替换成当前项目的URL地址 (不含域名)
!-GROUP-!:会替换成当前分组的URL地址 (不含域名)
!-URL-!: 会替换成当前模块的URL地址(不含域名)
!-ACTION-!:会替换成当前操作的URL地址 (不含域名)
!-SELF-!: 会替换成当前的页面URL
新增加自己的常量
'TMPL_PARSE_STRING' =>array(
'!-PUBLIC-!' => '/Common', // 更改默认的!-PUBLIC-! 替换规则
'__JS__' => '/Public/JS/', // 增加新的JS类库路径替换规则
'__UPLOAD__' => '/Uploads', // 增加新的上传路径替换规则
)
<import type='css' file="c" /> 导入默认网站Public目录下的c.css
<import type='css' file="c,css.style" /> 导入Public/c.sss 和Public/css/style.css
<import type='js' file="js.1" /> 导入Public/js/1.js
<include file="comm:head"/> 导入模板comm模块下的head模板
<include file="content"/> 导入同模块下的content模板
跳转
$this->assign("waitSecond",5); 时间
$this->success("提示消息",地址);
config.php 设置模板
'TMPL_ACTION_ERROR' => 'Public:error', // 默认错误跳转对应的模板文件
'TMPL_ACTION_SUCCESS' => 'Public:success', // 默认成功跳转对应的模板文件
'TMPL_EXCEPTION_FILE' => 'Public:exception',// 异常页面的模板文件
在tpl新建Public目录和相关页面
$this->redirect(地址, array('status'=>1,"id"=>200),延时,单位为秒, 提示信息) ;
自动验证 和自动完成
<?
class NewsModel extends Model{
protected $_validate = array( //自定验证
array('title','require','标题不能为空!'),
array('content','require','内容不能为空。'),
);
protected $_auto = array ( //自动完成
array('zz','1'),
array('date','time',3,"function"),
);
protected $insertFields = 'account,password,nickname,email'; //插入的时候的字段 其他无效
protected $updateFields = 'nickname,email'; //更新的字段 其他无效
public function getinfo(){
return 'asdasd';
}
}
?>
array(填充字段,填充内容[,填充条件][,附加规则])
1 必须。需要填充的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如验证码等。
2 必须。要对字段自动填充的内容。
3 可选。 1 :新增数据时候填充(默认)2 :更新数据时候填充 3 :全部情况下填充
4 可选。string:字符串,表示填充内容为字符串(默认)function:使用函数,表示填充的内容是一个函数返回值 callback:使用方法,表示填充的内容是一个当前 Model 的方法返回值 field:字段,表示填充的内容是一个其他字段的值
数据库设置config.php
// 添加数据库配置信息
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'thinkphp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => 3306, // 端口
'DB_PREFIX' => 'think_', // 数据库表前缀
开启调试模式
Conf\config.php
define('APP_DEBUG',TRUE);
新建Conf\debug.php
<?php
return array(
'SHOW_PAGE_TRACE' =>true,
);
?>
TRACE 只有在display()后 才能显示;
网站内部可以用
缓存
S(array('type'=>'xcache','expire'=>60)); //cache
cache('a',$value,300);//设置
$value = cache('a');//读取
cache('a',null);//删除
快速缓存
F("name",值); //设置
$Data=F("name"); //读取 默认目录在 项目\Runtime\Data
F('data',NULL); 删除
F('User/abc',$data);/创建带目录的user是文件名 abc的名字 读取也是需要带上目录 F('User/abc')
sql 缓存 $db-> cache(true) -> order("id desc")->select(); //默认 DATA_CACHE_TIME 设置时间
$db->cache('cache_name',60)->select();
控制器
public function _empty($name){
空方法
}
空控制器和空方法
class EmptyAction extends Action{
public function index(){
echo 'no';
}
public function _empty(){
echo 'no__';
}
}
前置后置
class IndexAction extends Action{
//前置操作方法
public function _before_index(){
echo 'before<br/>';
}
public function index(){
echo 'index<br/>';
}
//后置操作方法
public function _after_index(){
echo 'after<br/>';
}
}
IS_GET 是否GET请求
IS_POST 是否POST请求
IS_PUT 是否PUT请求
IS_DELETE 是否DELETE请求
IS_AJAX 是否AJAX请求
分页
$db = D("News");
$count = $db->count(); //统计总数
import('ORG.Util.Page');// 导入分页类
$Page = new Page($count,5);// 实例化分页类 传入总记录数,和每页的数量
$show = $Page->show();// 分页显示输出
$data = $db->cache(false)->limit($Page->firstRow.','.$Page->listRows) -> order("id desc")->select();
$this -> assign("show", $show); //列表
上传
public function upload() {
import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->savePath = './Public/Uploads/';// 设置附件上传目录
$upload->thumb=true;//产生缩略图
$upload->thumbMaxWidth=100;
$upload-> thumbMaxHeight=100;
$upload->thumbPrefix="s_";
if(!$upload->upload()) {
$this->error($upload->getErrorMsg());// 上传错误提示错误信息
}
else
{// 上传成功
$info = $upload->getUploadFileInfo();
$db=D('News');
$_POST['pic']=$info[0]["savepath"].$info[0]["savename"];
if($db->add($_POST)){
$this->success('上传成功!');
}else{
$this->error('上传失败!');
}
}
}
验证码
模板里 <input name="abc" type="text" /><img src="__APP__/index/verify" />
程序
if(session('verify') != md5($_POST['abc'])) {
$this->error('验证码错误!');
}
获取ip
$ip = get_client_ip(); //127.0.0.1
$ip = get_client_ip(1); //2130706433
根据id获取更多信息
import('ORG.Net.IpLocation');// 导入IpLocation类
$Ip = new IpLocation(); // 实例化类
$location = $Ip->getlocation('127.168.49.22'); // 获取某个IP地址所在的位置
dump($location);
地址库文件UTFWry.dat放入IpLocation扩展类库所在目录下面即可
转载请注明:谷谷点程序 » thinkphp常用变量