首頁  >  文章  >  後端開發  >  專為新手寫的結合smarty的類別第1/3頁_PHP教程

專為新手寫的結合smarty的類別第1/3頁_PHP教程

WBOY
WBOY原創
2016-07-21 16:00:07724瀏覽

專為新手寫的結合smarty的類,誠摯邀請大家多提寶貴意見


這個是為新手(也為自己)寫的結合smarty一起使用的類,是未完成的,現在放出來的目的不是馬上讓新手使用,所以也沒有把註解寫的非常詳細
希望各位高手多多提意見,我盡量完善它。
    首先聲明,我寫這篇的目的也是為了鍛鍊自己,儘管我知道現在已經有很多類似的類了,但是我還是決定來寫一個,
所以請大家在瀏覽的時候口下留情。

還有文件我也已經打包上傳了,放在下面,請大家多多下載,多多提意見。有什麼問題直接Q我

目前該類別包含以下功能(使用範例,設$m = new Machine_m())
[資料庫]
目前支援MYSQL與ACCESS兩種資料庫
設定參考config.php檔
使用:$m->send_query(SQL語句)//
$m->select_query(SQL語句,是否傳回資源,預設為false即回傳一個二維數組)

[錯誤處理]
分為系統錯誤與使用者錯誤
系統錯誤:
$this->sys_err( '設定錯誤,請檢查config設定檔', 'die');
第一個參數將記錄錯誤訊息到/lib/error/system.err中,第二個參數是處理方法(keep or die),如果需要修改瀏覽器端提示的話,也可以設定第三個參數,它預設為「很抱歉,本站發生系統錯誤,請稍候再試。」
使用者錯誤:
$m->user_err( '註冊系統關閉', 'die', $_SERVER[ 'HTTP_REFERER'] );
第一個參數是顯示到瀏覽器端的提示,第二個參數是處理方法(keep or die),第三個參數是跳轉頁面,如果需要記錄錯誤訊息的話,也可以設定第四個參數,它將記錄錯誤訊息
到/lib/error/user.err中,不設預設不儲存。

瀏覽器端的錯誤提示預設呼叫/lib/error/下的err_page.htm模版文件,也可以設定自己的錯誤模版文件,然後用$m->err_page=載入。

[靜態產生]
只用短短一行就自動產生靜態頁面,跳轉時可設定靜態頁面過期時間
(現在還是不完全的靜態,完全的比較複雜,目前沒有整合,大家如果要實現完全靜態的話,可以結合我的create_html函數和文字操作系列函數實作)
使用方法:
$m->create_html(模版檔,靜態輸出路徑,輸出的檔名);
跳轉:
$m->goto_html();
輸出檔名預設等於目前php檔的檔名,提供這個參數目的是,當有需要使用靜態分頁時,可以用這個參數設定

[二維數組排序 (推薦)]
可以讓二維數組作類似:「先按字段a升序,再按字段b降序」這樣的排序
使用方法:
設有這樣一個陣列:$x = array( array('name'=>'machine_馬', 'age'=>23),array('name'=>'tom',age=> 28),…… )
我們現在要把此數組先按name升序排,再按age降序排
則用法為m_sort($x,'name',SORT_ASC,'age',SORT_DESC)

[動態載入]
對於不常用的功能,我採用載入的方法來使用,個人認為這樣可以節約資源
例如,如果我們要使用m_sort函數時,預設是沒有載入這個函數的
需要這樣載入:$m->load_func('m_sort')
然後就可以使用m_sort函數了

[分頁]
這裡我也不知道做得好不好,我是先寫了一個類,再寫一個函數來調它,目的是使用得時候比較方便
使用方法:m_page(數據條數,當前頁號,每頁多少行,顯示多少個跳轉連結)
函數回傳一個陣列:array(
  'rows' => 每頁顯示多少行,
  'prve' => 上大一頁頁號,//所謂大頁,就是類似上7頁,下7頁這樣的跳轉
  'next' => 下一大頁頁號,
  'pages' => 總共有多少頁,
  'starto => SQL的開始記錄數,
  'count' => 總共有多少筆記錄,
  'links' => 連結頁號,//如果共有13頁,連結數是7個,目前又在第二大頁,則輸出array(8,9,10,11,12,13)​​
  'current_page' => 目前頁號
  );

[驗證表單]
事先需要驗證的表單寫入函數類,判別的時候只需要把$_POST傳入就可以了
使用方法:這個大家自己看函數就應該看得明白,這個函數需要大家按照自己的需求來修改的

[防止跨站攻擊]
把這個功能也寫道一個函數內了

[中文截取函數]
不是我寫的,拿來修改了一下而已

[上傳檔案]
m_up_file($_FILES,上傳路徑,檔案類型,大小限制)
其中上傳路徑可以這樣設置,1:直接寫入資料夾路徑,2:array('gif'=> 'file/gif','jpg'=>'file=>jpg'),這樣gif檔案自動放入file/gif資料夾,jpg檔案放入file/jpg資料夾
檔案類型:寫法1:' jpg',寫法2:array('jpg','jpeg','gif')
返回array( 'arr' => 已上傳的檔案數組, 'err_msg' => 上傳過程中的錯誤訊息, ' num' => 上傳成功數 )

[文字操作 (推薦)]
假設有這樣一個字串 $str="你好phpchina";
我們可以這樣修改 $new_str=m_txt_replace('content','machine_馬',$str);
現在$new_str的值為"你好"
其他的幾個函數,如:m_txt_add,m_txt_delete,m_txt_get都是類似的,大家可以自行參考。

注意:這個就是產生靜態頁面之後,修改的方法。
可以參考6to23並思考為什麼他一篇貼文放了那麼多回帖速度還那麼快
答:因為它的回帖沒有進數據庫而是直接寫到靜態文件裡面,再使用類似我上面的方法來修改的。你可以看他的原始碼,找找

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn