Time of Update: 2016-06-07
估計不少玩smarty模板的小朋友都遇到過裁切亂碼問題。特別是UTF8編碼的。以下代碼儲存為modifier.truncate2.php 存到smarty libs下的plugin目錄下然後裁剪的時候用$v->content|truncate2:100就搞定了。如果不好用可能是緩衝導致,請速度刪除templates_c下的快取檔案(小編搞的時候遇到緩衝問題。)複製代碼 代碼如下:/** * Smarty plugin * @package Smarty * @subpackage
Time of Update: 2016-06-07
很多時候我們在用smarty時,並不希望緩衝整個頁面,例如天氣、股票等這類即時更新的資訊。那麼我們可以讓其不緩衝,常見的實現有如下3種方法:1.insert 法:Insert 函數類似於 inluce 函數,不同之處是 insert 所包含的內容不會被緩衝,每次調用該模板都會重新執行該函數。比如說我們定義一個顯示時間的函數:複製代碼 代碼如下:function insert_get_current_time() {return date("H:i:s");} //然後在模板中:{insert
Time of Update: 2016-06-07
thinkPHP的F方法只能用於緩衝單一資料型別,不支援有效期間和緩衝對象。S()緩衝方法支援有效期間,又稱動態緩衝方法,使用樣本如下:複製代碼 代碼如下:// 使用data標識緩衝$Data資料S('data',$Data); //前面的是緩衝標示,後面的是緩衝的資料複製代碼 代碼如下:// 緩衝$Data資料3600秒S('data',$Data,3600);複製代碼 代碼如下:// 刪除快取資料S('data',NULL); //第一個參數時緩衝的標識名 複製代碼
Time of Update: 2016-06-07
作為一種常用的設計模式,單例模式被廣泛的使用。那麼如何設計一個單例才是最好的呢?通常我們會這麼寫,網上能搜到的例子也大部分是這樣:複製代碼 代碼如下:class A{ protected static $_instance = null; protected function __construct() { //disallow new instance } protected function __clone(){
Time of Update: 2016-06-07
通常volist標籤多用於查詢資料集(select方法)的結果輸出,通常模型的select方法返回的結果是一個二維數組,對此可以直接使用volist標籤進行輸出。在控制器中首先對模版賦值,如下例所示:$User = M('User');$list =
Time of Update: 2016-06-07
CI架構內建的zip類簡單實用,本文就來簡單說一下CI架構的zip類的使用。首先需要匯入zip類:複製代碼 代碼如下:$this->load->('zip');此外,但是考慮到CI的結構,還需要設定一下自動載入類,把zip載入進去。也可以在設定的時候,統一載入。大家如果遇到這個問題可能就是自動載入沒有載入zip類。具體調用方法如下:複製代碼 代碼如下:$path = $_SERVER['DOCUMENT_ROOT'];//需要壓縮的檔案夾路徑$this->zip->read_dir($path,
Time of Update: 2016-06-07
Twig是一款快速、安全、靈活的PHP模板引擎,它內建了許多filter和tags,並且支援模板繼承,能讓你用最簡潔的代碼來描述你的模板。他的文法和Python下的模板引擎Jinjia以及Django的模板文法都非常像。 比如我們在PHP中需要輸出變數並且將其進行轉義時,文法比較累贅:複製代碼 代碼如下:但是在Twig中可以這樣寫:複製代碼 代碼如下:{{ var }}{{ var|escape }}{{ var|e }} {# shortcut to escape a
Time of Update: 2016-06-07
很多程式員在CI中使用session的時候,開啟自動載入session之後網站就報錯了,具體錯誤資訊如下:In order to use the Session class you are required to set an encryption key 下面一起來看問題解決辦法。提示資訊說明:如果想用session類的話就必須要設定一個加密的密鑰!那就給設定一個吧,畢竟也是出於安全考慮。開啟application/config/config.php找到Encryption Key複製代碼
Time of Update: 2016-06-07
實現國際化的方式比較多,很多php framework都內建i18n支援,但大部分是基於PHP的數組實現的,這種方法並不推薦。目前最為流行也最通用的方法是gettext。Gettext 用於系統的國際化(I18N)和本地化(L10N),可以在編譯器的時候使用本國語言支援(Native Language Support(NLS)),其可以使程式的輸出使用使用者佈建的語言而不是英文. 關於gettext的更多資料請參見: 下面說說如何利用gettext在你的PHP程式中實現國際化。一、檢查環境需求
Time of Update: 2016-06-07
很多程式員在使用codeigniter CLI下執行一個大批量資料匯入的問題時,會一直出現記憶體過高的情況,下面對此分析器原因及解決辦法。CI db會將所有的查詢sql和和sql執行時間儲存下來,對於類似百萬級大資料量的匯入問題來說,其執行的sql記錄都會被儲存在內容中,這就佔用了大量的內容直至指令碼結束。解決辦法:當你執行大數量的db操作時,記得設定:複製代碼 代碼如下:$this->db->save_queries = FALSE;
Time of Update: 2016-06-07
ThinkPHP CURD方法的table方法也屬於模型類的連貫操作方法之一,該方法主要用於指定操作的資料表。具體用法如下:一般情況下,操作模型的時候系統能夠自動識別當前對應的資料表,所以,使用table方法的情況通常是為了:1.切換操作的資料表;2.對多表進行操作;例如:$Model->table('think_user')->where('status>1')->select();也可以在table方法中指定資料庫,例如:$Model->table('db_name.think_user')
Time of Update: 2016-06-07
Snoopy是一個php類,用來類比瀏覽器的功能,可以擷取網頁內容,發送表單,可以用來開發一些採集程式和小偷程式,本文章詳細介紹snoopy的使用教程。Snoopy的一些特點:抓取網頁的內容 fetch抓取網頁的常值內容 (去除HTML標籤) fetchtext抓取網頁的連結,表單 fetchlinks fetchform支援代理主機支援基本的使用者名稱/密碼驗證支援設定 user_agent, referer(來路), cookies 和 header
Time of Update: 2016-06-07
ThinkPHP CURD方法的field方法屬於模型的連貫操作方法之一,主要目的是標識要返回或者操作的欄位,可以用於查詢和寫入操作。1、用於查詢在查詢操作中field方法是使用最頻繁的。$Model->field('id,title,content')->select();這裡使用field方法指定了查詢的結果集中包含id,title,content三個欄位的值。執行的SQL相當於:SELECT id,title,content FROM
Time of Update: 2016-06-07
代碼執行個體: weblogUpdates.extendedPing 愚人渡 http://www.php.net http://www.php.net/read.php?tid-96.html http://www.php.net ";$res = postUrl('http://ping.baidu.com/ping/RPC2', $baiduXML);if ( strpos($res, "0") ){ echo "PING成功";}else{
Time of Update: 2016-06-07
在PHP程式中,很多時候都會遇到處理時間的問題,比如:判斷使用者線上了多長時間,共登入了多少天,兩個文章發布的時間差或者是不同操作之間的日誌記錄等等。在文章中,簡單地舉例介紹了PHP中如何計算兩個日期相差 年、月、日。 strtotime($date2)) { $ymd = $date2; $date2 = $date1; $date1 = $ymd; } list($y1, $m1, $d1) = explode('-', $date1); list($y2
Time of Update: 2016-06-07
我們知道資料庫處理sql是一條條處理的,假設購買商品的流程是這樣的:sql1:查詢商品庫存if(庫存數量 > 0){ //產生訂單...
Time of Update: 2016-06-07
這個方法的作用是:php截取含有html標籤的字串,如果標籤未閉合就閉合標籤,防止未閉合的標籤破壞原網頁布局。截取完之後將多餘的內容替換為...或者其他任一字元,支援錨點指定替換到指定位置。/** ============================== 截取含有 html標籤的字串 =========================* @param (string) $str 待截取字串* @param (int) $lenth 截取長度* @param (string)
Time of Update: 2016-06-07
PHP 跳轉,即重新導向瀏覽器到指定的 URL,是一個很常見的功能。這種功能也有一些細節性的要求,比如等待多少秒以後跳轉,用不用JavaScript實現跳轉,等等。下面的跳轉方法考慮到很多,並參數化,可以用到具體的項目當中。 0) { echo EOT; exit; } else { header("Location: {$url}");
Time of Update: 2016-06-07
使用mkdir建立檔案夾時,發現這個函數有兩個參數,第二個參數是為新建立的檔案夾指定許可權。但是如果直接用mkdir('檔案地址', 0777);時 發現新檔案夾的許可權並不是777,一般情況下會是022。因為mkdir在給檔案夾制定許可權時,會跟當前登入作業系統使用者的umask(使用者預設許可權屬 性)值進行位“與”,得到的值才是最終許可權值。umask
Time of Update: 2016-06-07
ThinkPHP3.1版的Action參數綁定功能提供了URL變數和操作方法的參數綁定支援,這一功能可以使得你的操作方法定義和參數擷取更加清晰,也便於跨模組叫用作業方法。這一新特性對以往的操作方法使用沒有任何影響,你也可以用新的方式來改造以往的操作方法定義。Action參數綁定的原理是把URL中的參數(不包括分組、模組和操作地址)和控制器的操作方法中的參數進行綁定。例如,我們給Blog模組定義了兩個操作方法read和archive方法,由於read操作需要指定一個id參數,archive方法需要