1、把下面的內(nèi)容保存為 .htaccess 文件放到根目錄下;
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
二、IIS偽靜態(tài)規(guī)則
如果你的網(wǎng)站根目錄下有web.Config(高版本IIS下新建網(wǎng)站都有),在中間添加rewrite節(jié)點(diǎn):
如果沒有,那么就找httpd.ini文件,添加下面的內(nèi)容:
RewriteRule (.*)$ /index.php\?s=$1 [I]
三、Nginx偽靜態(tài)規(guī)則
在Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉(zhuǎn)發(fā)規(guī)則實(shí)現(xiàn):
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
原理:其實(shí)內(nèi)部是轉(zhuǎn)發(fā)到了ThinkPHP提供的兼容URL,利用這種方式,可以解決其他不支持PATHINFO的WEB服務(wù)器環(huán)境。
如果你的應(yīng)用安裝在二級(jí)目錄,Nginx的偽靜態(tài)方法設(shè)置如下,其中 youdomain 是所在的目錄名稱。
location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=/$1 last;
}
}
1、模塊訪問
使用:域名/入口文件/模塊/控制器/方法
2、自動(dòng)生成模塊
在入口文件index.php中,定義常量define('BIND_MODULE','Admin');
3、comment目錄存放公共函數(shù),function.php,thinkphp系統(tǒng)會(huì)自動(dòng)加載,存放在模塊中則,在當(dāng)前模塊使用,存放在項(xiàng)目目錄的中則在整個(gè)項(xiàng)目使用。
4、實(shí)例化類,實(shí)例化基礎(chǔ)類使用,M(控制器名字),實(shí)例化自定義類,D(控制器名稱或者表名)
5、i(大寫)用于接收提交的各種數(shù)據(jù) I('接收數(shù)據(jù)類型',‘【默認(rèn)值】’,‘【過濾函數(shù)名字】’,【額外數(shù)據(jù)】);例如:I('POST.',' ','int')
6、模板遍歷數(shù)據(jù),<foreach name='datalists' item='vo' key=key>{$vo.title}</foreach>
或者<volist name='data' id='vo' key='key'> 循環(huán)體</volist>
其中key表示索引下標(biāo)的值
7、U(‘網(wǎng)址地址’),用在前臺(tái)或后臺(tái),格式化,網(wǎng)址信息
8、__PUBLIC__指向,根目錄下Public文件夾,存放css、js、images等文件
9、__APP__指向項(xiàng)目的路徑,__RUL__指向當(dāng)前模塊
10、驗(yàn)證碼類:
生成驗(yàn)證碼
下面是最簡單的方式生成驗(yàn)證碼:
$Verify = new ThinkVerify();
$Verify->entry();
實(shí)例化傳入?yún)?shù):
$config = array(
'fontSize' => 30, // 驗(yàn)證碼字體大小
'length' => 3, // 驗(yàn)證碼位數(shù)
'useNoise' => false, // 關(guān)閉驗(yàn)證碼雜點(diǎn)
);
$Verify = new ThinkVerify($config);
$Verify->entry();
或者采用動(dòng)態(tài)設(shè)置的方式,如:
$Verify = new ThinkVerify();
$Verify->fontSize = 30;
$Verify->length = 3;
$Verify->useNoise = false;
$Verify->entry();
驗(yàn)證碼檢測(cè)
可以用ThinkVerify類的check方法檢測(cè)驗(yàn)證碼的輸入是否正確,例如,下面是封裝的一個(gè)驗(yàn)證碼檢測(cè)的函數(shù):
// 檢測(cè)輸入的驗(yàn)證碼是否正確,$code為用戶輸入的驗(yàn)證碼字符串
function check_verify($code, $id = ''){
$verify = new ThinkVerify();
return $verify->check($code, $id);
}
11、模糊查詢,$map['字段名字']=array('like',"匹配符");例如$map['id']= array('like',"%3%");
12、全部刪除,$map['id'] = array('in',數(shù)組),代表要?jiǎng)h除的字段是否存在數(shù)組中
13.layer,彈出層,layer.msg(‘提示文字’,{time:2000},function());
14、分頁類:
計(jì)算數(shù)據(jù)總條數(shù)-》設(shè)置每頁顯示的條數(shù)-》實(shí)例化分頁類-》顯示頁腳-》limit查詢數(shù)據(jù)-》分配數(shù)據(jù)
15、關(guān)聯(lián)查詢
一對(duì)一關(guān)聯(lián) :ONE_TO_ONE,包括HAS_ONE 和 BELONGS_TO
一對(duì)多關(guān)聯(lián) :ONE_TO_MANY,包括HAS_MANY 和 BELONGS_TO
多對(duì)多關(guān)聯(lián) :MANY_TO_MANY
模型類必須繼承ThinkModelRelationModel類,關(guān)聯(lián)定義的格式是:
namespace HomeModel;
use ThinkModelRelationModel;
class UserModel extends RelationModel{
protected $_link = array(
'關(guān)聯(lián)1' => array(
'關(guān)聯(lián)屬性1' => '定義',
'關(guān)聯(lián)屬性N' => '定義',
),
'關(guān)聯(lián)2' => array(
'關(guān)聯(lián)屬性1' => '定義',
'關(guān)聯(lián)屬性N' => '定義',
),
'關(guān)聯(lián)3' => HAS_ONE, // 快捷定義
…
);
}
16、插入數(shù)據(jù)add(),更新數(shù)據(jù)save(),刪除數(shù)據(jù)delete(),查詢一條數(shù)據(jù)find(),查詢多條數(shù)據(jù)select();
17、查詢獲取指定字段field(字段1,字段2),獲取指定字段getField(字段)
18、上傳類
實(shí)例化上傳類think/upload
19、設(shè)置session(‘session名字’,‘session值’)獲取session(session名字)
20布局繼承
第一步,先寫好comment。mthl,吧主體內(nèi)容使用<blockl name="main">主體內(nèi)容</block>
第二部在字模板中繼承,<extends name="父模板的路徑例如:comment,不需要寫后綴">
要顯示的替換的位置<blockl name="main">替換的內(nèi)容</block>
注意name屬性的值,名字必須是一樣的
]]>