最新thinkphp323學(xué)習(xí)筆記資料_第1頁
最新thinkphp323學(xué)習(xí)筆記資料_第2頁
最新thinkphp323學(xué)習(xí)筆記資料_第3頁
最新thinkphp323學(xué)習(xí)筆記資料_第4頁
最新thinkphp323學(xué)習(xí)筆記資料_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3.2 框架初始的目錄結(jié)構(gòu)如下:www WEB 部署目錄(或者子目錄)| index.php 入口文件| README.md README 文件| Application 應(yīng)用目錄|Public資源文件目錄1Th in kPHP 框架目錄3.2 版本自帶了一個完整的應(yīng)用目錄結(jié)構(gòu)和默認的應(yīng)用入口文件。其中,Application 和Public 目錄下面都是空的。README.md 文件僅用于說明,實際部署的時候可以刪除。 上面的目錄結(jié)構(gòu)和名稱是可以改變的,這取決于你的入口文件和配置參數(shù)。Application 目錄默認是空的, 但是第一次訪問入口文件會自動生成, 參考后面的入口文件部 分。其中

2、框架目錄 ThinkPHP 的結(jié)構(gòu)如下:| ThinkPHP 框架系統(tǒng)目錄(可以部署在非 web 目錄下面)| Com mon核心公共函數(shù)目錄| Conf核心配置目錄|Lang核心語言包目錄|Library框架類庫目錄|Thi nk核心Th ink類庫包目錄| Behavior 行為類庫目錄|Org Org類庫包目錄| Vendor 第三方類庫目錄| . 更多類庫目錄|Mode 框架應(yīng)用模式目錄|Tpl 系統(tǒng)模板目錄|LICENSE.txt 框架授權(quán)協(xié)議文件| logo.png 框架 LOGO 文件|README.txt 框架 README 文件|1 index.php 框架入口文件上述應(yīng)用的

3、目錄結(jié)構(gòu)只是默認設(shè)置, 事實上, 在實際部署應(yīng)用的時候, 我們建議除了應(yīng)用入口文件和 Public 資源目錄外,其他文件都放到非 WEB 目錄下面,具有更好的安全性。入口文件:define(APP_PATH,./Apps/);define(DIR_SECURE_FILENAME, default.html);/ 支 持 多 個 安 全 文 件 寫 入 define(DIR_SECURE_FILENAME, index.html,index.htm);/ 默認的安全文件只是寫入一個空 白字符串,如果需要寫入其他內(nèi)容,可以通過 DIR_SECURE_CONTENT 參數(shù)來指定 define(DIR

4、_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 數(shù)組的方式* 慣例配置文件(位于 ThinkPHP/Conf/convention.php )*應(yīng)用配置文件調(diào)用所有模塊之前都會首先加載的公共配置文件(默認位于 Appli

5、cation/Common/Conf/config.php )/tp/home/index/indexhttp:/serverName/index.php/Home/Index/index http:/localhost/?m=home&c=user&a=login&var=value獲取已經(jīng)設(shè)置的參數(shù)值:C(參數(shù)名稱)設(shè)置新的值:C(參數(shù)名稱,新的參數(shù)值);擴展配置可以支持自動加載額外的自定義配置文件,并且配置格式和項目配置一樣。設(shè)置擴展配置的方式如下(多個文件用逗號分隔) :/ 加載擴展配置文件LOAD_EXT_CONFIG = user,db,獲取變量1(變量類型變量名,默認值,過濾方法

6、)變量類型 含義get 獲取 GET 參數(shù)post 獲取 POST 參數(shù)param自動判斷請求類型獲取GET、POST或者PUT參數(shù)request 獲取 REQUEST 參數(shù)put 獲取 PUT 參數(shù)session 獲取 $_SESSION 參數(shù) cookie 獲取 $_COOKIE 參數(shù) server 獲取 $_SERVER 參數(shù) globals 獲取 $GLOBALS 參數(shù)echo l(get.id); / 相當(dāng)于 $_GETidecho I(); / 相當(dāng)于 $_GETnameecho I(get.id,0); / 如果不存在 $_GETid則返回 0echo I(,); / 如果不存在

7、 $_GETname 則返回空字符串采用方法過濾:/ 采用 htmlspecialchars 方法對 $_GETname 進行過濾,如果不存在則返回空字符串 echo I(,htmlspecialchars);/ 獲取整個 $_GET 數(shù)組I(get.);由于 param 類型是 I 函數(shù)默認獲取的變量類型, 因此事實上 param 變量類型的寫法可以簡化 為:I(id); / 等同于 I(param.id)I(name); / 等同于 I()param 類型變量還可以用數(shù)字索引的方式獲取URL 參數(shù)(必須是 PATHINFO 模式參數(shù)有效,無論是 GET 還是 POST 方 式 都 有 效

8、) , 例 如 : 當(dāng) 前 訪 問 URL 地 址 是 http:/serverName/index.php/New/2013/06/01那么我們可以通過echo I(param.1); / 輸出 2013echo I(param.2); / 輸出 06echo I(param.3); / 輸出 01/ 下面兩種方式都不采用任何過濾方法I(,);I(get.id,false);判斷請求類型常量 說明IS_GET判斷是否是GET 方式提交IS_POST判斷是否是POST 方式提交IS_PUT判斷是否是PUT 方式提交IS_DELETE判斷是否是DELETE 方式提交IS_AJAX判斷是否是AJA

9、X 提交REQUEST_METHOD 當(dāng)前提交類型AJAX 返回$data = ok;$this-ajaxReturn($data);$(function()$(button).bind(click,function()$.get(_URL_/getajax/id/$_GETid,function(jdate) if(jdate.status=1)$(.about_c p b).html(jdate.data)空操作空操作是指系統(tǒng)在找不到請求的操作方法的時候, 會定位到空操作 ( _empty )方法來執(zhí)行, 利用這個機制,我們可以實現(xiàn)錯誤頁面和一些 URL 的優(yōu)化。使用函數(shù)$|md5$cre

10、ate_time|date=y-m-d,#/ 表示 date 函數(shù)傳入兩個參數(shù),每個參數(shù)用逗號分割,這里 第一個參數(shù)是 y-m-d ,第二個參數(shù)是前面要輸出的 create_time 變量,因為該變量是第二個 參數(shù),因此需要用 #標(biāo)識變量位置,$|substr=0,3 / 前面輸出的變量在后面定義的函數(shù)的第一個參數(shù) $name|md5|strtoupper|substr=0,3 / 支持多個函數(shù)過濾,多個函數(shù)之間用“|”分割:substr(strtoupper(md5($name),0,3)默認值輸出$user.nickname|default= 這家伙很懶,什么也沒留下 包含文件 *f.ht

11、ml:titleVolist 標(biāo)簽 $vo.id:$輸出其中的第515條記錄 $輸出偶數(shù)記錄$Mod 屬性還用于控制一定記錄的換行$vo.uname為空的時候輸出提示:$vo.id|$輸出循環(huán)變量$k.$如果沒有指定 key 屬性的話,默認使用循環(huán)變量i ,例如:$i.$Foreach 標(biāo)簽$key|$vo.id:$可以定義索引的變量名$k|$vo.id:$For 標(biāo)簽開始值、 結(jié)束值、 步進值和循環(huán)變量都可以支持變量, 開始值和結(jié)束值是必須, 其他是可 選。comparison的默認值是It; name的默認值是i,步進值的默認值是1 Switch 標(biāo)簽 輸出內(nèi)容 1輸出內(nèi)容 2 默認情況對

12、 于 case 的 value 屬性 可 以支 持 多個條 件的 判 斷, 使 用”|”進行 分割 圖像格式 比較標(biāo)簽內(nèi)容標(biāo)簽含義eq 或者 equal 等于neq 或者 notequal 不等于gt大于egt大于等于lt小于elt小于等于heq恒等于nheq不恒等于范圍判斷標(biāo)簽IN 和 NOTINid 在范圍內(nèi)id 不在范圍內(nèi)BETWEEN 和 NOTBETWEEN 輸出內(nèi)容 1RANGE 輸出內(nèi)容 1其中 type 屬性的值可以用 in/notin/between/notbetweenIF 標(biāo)簽value1value2value3在 condition 屬性中可以支持 eq 等判斷表達式,

13、同上面的比較標(biāo)簽,但是不支持帶 有” ”、” ”等符 號的用法,因為會混淆模板解析Present 標(biāo)簽present 標(biāo)簽用于判斷某個變量是否已經(jīng)定義name 已經(jīng)賦值判斷沒有賦值 name 還沒有賦值 name 已經(jīng)賦值name 還沒有賦值Empty 標(biāo)簽empty 標(biāo)簽用于判斷某個變量是否為空name 為空值 如果判斷沒有賦值name 不為空name 為空name 不為空Defined 標(biāo)簽DEFINED 標(biāo)簽用于判斷某個常量是否有定義 NAME 常量已經(jīng)定義 如果判斷沒有被定義NAME 常量未定義NAME 常量已經(jīng)定義NAME 常量未定義Assign 標(biāo)簽SSIGN 標(biāo)簽用于在模板文件中

14、賦值變量Define 標(biāo)簽DEFINE 標(biāo)簽用于中模板中定義常量標(biāo)簽嵌套輸出雙重循環(huán)$import 標(biāo)簽原樣輸出可以使用 literal 標(biāo)簽來防止模板標(biāo)簽被解析 value1value2 value3模板注釋單行注釋 /* 注釋內(nèi)容 */ 或 / 注釋內(nèi)容 多行注釋/* 這是模板注釋內(nèi)容 */ 模板替換_ROOT_ : 會替換成當(dāng)前網(wǎng)站的地址(不含域名)_APP_ : 會替換成當(dāng)前應(yīng)用的 URL 地址 (不含域名)_MODULE_ :會替換成當(dāng)前模塊的 URL 地址 (不含域名)_CONTROLLER (_或者 _URL_ 兼容考慮): 會替換成當(dāng)前控制器的 URL 地址(不含 域名)_AC

15、TION_ :會替換成當(dāng)前操作的 URL 地址 (不含域名)_SELF_ : 會替換成當(dāng)前的頁面 URL_PUBLIC_ :會被替換成當(dāng)前網(wǎng)站的公共目錄通常是 /Public/文件上傳 :頁面: 文件: 程序:public function upload()$upload = new ThinkUpload();/ 實例化上傳類$upload-maxSize = ini_get(upload_max_filesize)*1024*1024;/ 設(shè)置附件上傳大小$upload-exts = array(jpg, gif, png, jpeg);/ 設(shè)置附件上傳類型 $upload-savePat

16、h = ./uploads/; / 設(shè)置附件上傳目錄/ 上傳文件$info = $upload-upload();if(!$info)/ 上傳錯誤提示錯誤信息$this-error($upload-getError();else/ 上傳成功$this-success(上傳成功!);echo ;或者public function upload()$config = array(maxSize = ini_get(upload_max_filesize)*1024*1024,savePath = ./uploads/,saveName = array(uniqid,),exts = array(j

17、pg, gif, png, jpeg),autoSub = true,subName = array(date,Ymd),);$upload = new ThinkUpload($config);/ 實例化上傳類/ 上傳文件$info = $upload-upload();if(!$info)/ 上傳錯誤提示錯誤信息$this-error($upload-getError();else/ 上傳成功$this-success(上傳成功!);echo ; 驗證碼$Verify = new ThinkVerify();$Verify-entry();$config = array(fontSize

18、= 30, / 驗證碼字體大小length = 3, / 驗證碼位數(shù)useNoise = false, / 關(guān)閉驗證碼雜點);$Verify = new ThinkVerify($config);$Verify-entry();驗證碼檢測/ 檢測輸入的驗證碼是否正確, $code 為用戶輸入的驗證碼字符串function check_verify($code, $id = )$verify = new ThinkVerify();return $verify-check($code, $id);圖像處理使用 open 方法打開圖像文件進行相關(guān)操作:$image = new ThinkImage

19、();$image-open(./1.jpg);獲取圖像信息$width = $image-width(); / 返回圖片的寬度$height = $image-height(); / 返回圖片的高度$type = $image-type(); / 返回圖片的類型$mime = $image-mime(); / 返回圖片的 mime 類型$size = $image-size(); / 返回圖片的尺寸數(shù)組 0 圖片寬度 1 圖片高度 裁剪圖片(使用crop和save方法完成裁剪圖片功能)/將圖片裁剪為 400 x400 并保存為 corp.jpg$image-crop(400, 400)-sa

20、ve(./crop.jpg); 支持從某個坐標(biāo)開始裁剪,例如下面從(100, 30)開始裁剪:/將圖片裁剪為 400 x400 并保存為 corp.jpg$image-crop(400, 400,100,30)-save(./crop.jpg);生成縮略圖 (使用 thumb 方法生成縮略圖 )/ 按照原圖的比例生成一個最大為 150*150 的縮略圖并保存為 thumb.jpg $image-thumb(150, 150)-save(./thumb.jpg);添加圖片水印/將圖片裁剪為 440 x440 并保存為 corp.jpg$image-crop(440, 440)-save(./cr

21、op.jpg);/ 給裁剪后的圖片添加圖片水印(水印文件位于./logo.png ),位置為右下角,保存為 water.gif$image-water(./logo.png)-save(water.jpg);/ 給原圖添加水印并保存為 water_o.gif (需要重新打開原圖)$image-open(./1.jpg)-water(./logo.png)-save(water_o.jpg);IP 獲取和定位$ip = get_client_ip();$User = M(User); / 實例化 User 對象 $result = $User-find(1);$result = $User-li

22、mit(10)-select();在 thinkphp 里面執(zhí)行原生的 sql 語句$Model = new Model();/ 或者 $Model = D(); 或者 $Model = M();$sql = select * from order;$voList = $Model-query($sql);只是需要 new 一個空的模型繼承 Model 中的方法。注意query是查功能,execute是增刪改功能調(diào)試執(zhí)行的 SQL 語句echo $User-getLastSql();封裝的 add 語句$model = M(WxuserCollection);$data = array(use

23、r_id =$user_id, store_id =$store_id, good_id =$good_id, addtime =$addtime);$model -data($data) -add();封裝的修改 edit 語句$model = M(WxuserCollection);$data = array(user_id =$user_id, store_id =$store_id, good_id =$good_id, addtime =$addtime);$model -data($data) -where(id=3) -save();find()$model = M(Wxuser

24、Collection);$res1 = $model -find(1);$res2 = $model -find(2);$res3 = $model -where(good_id=1105 AND store_id = 1 AND user_id = 20) -find();find獲取一條數(shù)據(jù),find(1)獲取id為1的數(shù)據(jù),find(2)獲取id為2的數(shù)據(jù)。最后一個是獲取 條件為 where 的中的第一條數(shù)據(jù)。select()$model = M(WxuserCollection);$res = $model -where(good_id=1105 AND store_id = 1 AN

25、D user_id = 20) -field(id,good_id as good) -select();delete()$model = M(WxuserCollection);$res = $model -where(id=1) -delete(); / 成功返回 1 失敗返回 0 field()$model = M(WxuserCollection);$res = $model -field(id,good_id as good) -select();$res = $model -field(array(id, good_id =good) -select();$res = $model

26、 -field(id, true) -select();/ 表示獲取處理 id 之外的所有字段。 字符串,數(shù)組兩種方式order()$model = M(WxuserCollection);$res = $model -order(id desc) -select();$res = $model -order(id asc) -select();$res = $model -order(array(id =desc) -select();$res = $model -order(array(id) -select(); 字符串,數(shù)組兩種方式,默認asc。join()$Model-join( w

27、ork ON artist.id = work.artist_id)-join(card ON artist.card_id = card.id)-select();$Model-join(RIGHT JOIN work ON artist.id = work.artist_id)-select();$Model-join(array( work ON artist.id = work.artist_id,card ON artist.card_id = card.id)-select();默認采用 LEFT JOIN 方式,如果需要用其他的JOIN 方式,可以改成第二種,如果 join 方法的參數(shù)用數(shù)組的話,只能使用一次 join 方法,并且不能和字符串方式混合使 用。setInc()$User = M(User); / 實例化 User 對象$User-where(id=5)-setInc(score,3); / 用戶的積分加 3 $

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論