你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應當把這些原則看成警鈴,若違背了其中的一條,那麼警鈴就會響起 。 ----- Arthur
PHP5.2.4之前的版本無需設定時區。下面是修改PHP時區的三個辦法。1、修改PHP.ini這個檔案找到date.timezone這行,去掉前面的分號,改成:date.timezone = Asia/Shanghai2、修改 .htaccess檔案修改.htaccess檔案有兩種辦法,下面的兩條語句只要有一條即可php_value date.timezone Asia/ShanghaiSetEnv TZ Asia/Shanghai3、修改PHP代碼也是下面的兩條語句只要其中的一句即可date_
xdebug是一個開源的php調試器,以php模組的形式載入並被使用。windows 平台下:一、安裝xdebug模組1、去www.xdebug.org下載相應版本php的模組檔案,儲存下載後的檔案到php的ext目錄,可以自己修改檔案的名稱,現在最新的版本是 2.0.1。2、修改php.ini,增加如下資訊[Xdebug]zend_extension_ts="d:/php/ext/xdebug-xxx.dll"xdebug.auto_trace=onxdebug.collect_params=
PHP session變數的作用是:儲存使用者的session資訊,或者改變使用者的session設定。Session變數儲存了一個單一使用者的資訊,它可以被所有的頁面使用。PHP Session變數當你在自己的電腦上運行一個應用程式時,你開啟它,對他做一些改變,然後關閉它,這個過程和session很相似。電腦知道你是誰,知道你什麼時候啟動了應用程式,什麼時候關閉了應用程式。但在互連網上,會出現這樣一個問題:因為HTTP地址不可能永久的保留下來,所以伺服器很難辨認你是誰,你在幹什麼。PHP
LDAP 1 LDAP是什麼
雖然 PHP5 還沒有正式發布(開發版本已經提供下載),但我們現在就可以開始體驗一下新的版本 將要帶給我們的驚喜。在以下的介紹中,我們將重點講述 PHP5 中的三大特色功能。這三大特點為:* 新的對象模式 (New Object Mode)* 異常處理 (Exceptions)* 名稱空間 (Namespace)在開始之前,要聲明兩點:* 文章中的例子為了說明如何操作,有些部分使用了 PHP4 的表現手段,這僅僅是為了提高文章的可讀性。* 文章中描述的部分與 PHP5
抽象類別抽象類別不能被執行個體化。抽象類別與其它類一樣,允許定義變數及方法。抽象類別同樣可以定義一個抽象的方法,抽象類別的方法不會被執行,不過將有可能會在其衍生類別中執行。例六:抽象類別abstract class foo { protected $x; abstract function display();function setX($x) { $this->x = $x; }} class foo2 extends foo { function display() {
/*+-------------------------------------------------------------------------------+| = 本文為Haohappy讀> | = 中Classes and Objects一章的筆記 | = 翻譯為主+個人心得 | = 為避免可能發生的不必要的麻煩請勿轉載,謝謝 | = 歡迎批評指正,希望和所有PHP愛好者共同進步! | = PHP5研究中心: http://blog.csdn.net/haohappy2004+--
我們編寫程式時,無論怎樣小心謹慎,犯錯總是在所難免的。這些錯誤通常會迷惑PHP編譯器。如果開發人員無法瞭解編譯器報錯資訊的含義,那麼這些錯誤資訊不僅毫無用處,還會常常讓人感到沮喪。編譯PHP指令碼時,PHP編譯器會盡其所能報告它遇到的第一個問題。這樣就產生一個問題:只有當錯誤出現時,PHP才能將它識別出來(本文後面對此問題進行了詳細描述)。正是由於這個緣故,編譯器指出出錯的那行,從表面上看來可能文法正確無誤,或者可能是根本就不存在的一行!更好地理解錯誤資訊可以大大節省確定並改正錯誤內容所花費的時
在firefox中,使用“查看”菜單中的“頁面原始碼”查看html原始碼 跟 選中要看的內容然後點擊”查看選中部分的原始碼“ ,得到的原始碼不相同,我們寧可相信前者,而不要相信後者。舉例來說:頁面為gbk的,中有一個表單,通過表單中的輸入框輸入這個字元“・”,儲存到資料 庫中的是“・”,如果接著將它查出來在頁面上顯示(gbk字元),他會顯示回原樣:&
大多的PHP程式,都有這樣的邏輯:如果發現php.ini配置為不給GPC變數自動添加轉義斜線,則PHP自動為GPC添加轉義斜線但是事實上,這是錯誤的,因為它改變了GPC變數原來的值.有這個遺留習慣的原因是PHP程式使用往往配合mysql, 而mysql對特殊字元的轉義,採取的是添加轉義斜線,但是其它資料如mssql,oci呢,不一定是這樣的.如果使用其它類型資料庫,如mssql,oci,sybase 那麼,給GPC添加轉義斜線,更是個錯誤進一步,如果GPC資料不需要存入資料庫,而儲存到檔案系統,
SQL注入攻擊是駭客攻擊網站最常用的手段。如果你的網站沒有使用嚴格的使用者輸入檢驗,那麼常容易遭到SQL注入攻擊。SQL注入攻擊通常通過給網站資料庫提交不良的資料或查詢語句來實現,很可能使資料庫中的紀錄遭到暴露,更改或被刪除。為了防止SQL注入攻擊,PHP內建一個功能可以對輸入的字串進行處理,可以在較底層對輸入進行安全上的初步處理,也即Magic Quotes。(php.ini
今天看到大家在討論,發現這是個很嚴重而又容易疏忽的問題,我以前也一直是用set names,遂記錄下來,也提醒自己一把。set names與mysql_set_charset有什麼區別?一般情況下, 使用”SET NAMES”就足夠了, 也是可以保證正確的. 那麼為什麼手冊又要說推薦使用 mysqli_set_charset(PHP>=5.0.5)呢。手冊裡面也沒有明確說明。首先, 很多人都不知道”SET NAMES”到底是做了什麼,我之前的文章《
我在用php程式建站時喜歡用PATH_INFO的方式來實現搜尋引擎友好,比如:php/module/xxx/action/xxx/id/xxx">http://www.15597.com/index.php/module/xxx/action/xxx/id/xxx但是index.php能看到副檔名.php很不爽,解決方案如下:在APACHE中這樣配置:ForceType
iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)用法:iconvstring iconv ( string $in_charset , string $out_charset , string $str
【活動記錄的意圖】一個對象,它封裝資料表或視圖中某一行,封裝資料庫訪問,並在這些資料上增加了領域邏輯。【活動記錄的適用情境】適用於不太複雜的領域邏輯,如CRUD操作等。【活動記錄的運行機制】對象既有資料又有行為。其使用最直接的方法,將資料訪問邏輯置於領域對象中。活動記錄的本質是一個領域模型,這個領域模型中的類和基資料庫中的記錄結構應該完全符合,類的每個域對應表的每一列。一般來說,活動記錄包括如下一些方法:1、由資料行構造一個活動記錄執行個體;2、為將來對錶的插入構造一個新的執行個體;3、用靜態尋
php中一般使用mb_detect_encoding函數進行字串編碼識,但是很多人都碰到過識別編碼有誤的問題,例如對與GB2312和UTF- 8,或者UTF-8和GBK(這裡主要是對於cp936的判斷),網上說是由於字元短是,mb_detect_encoding會出現誤判。例如:$encode = mb_detect_encoding($keytitle, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));if
最近比較PHP跟Python, Erlang的特性,發現PHP有很多人們不常用到的特性。用PHP CLI可以實現很多不錯的應用。比如做搜尋引擎的爬蟲, 長期啟動並執行計算指令碼, 完全可以取代其他語言來做伺服器的營運。這對於熟悉PHP的人來說如虎添翼。為什麼PHP多進程很好? 網遊伺服器大部分都使用多線程而不是多進程的原因也在於進程比線程更加穩定。而且多線程適合現在多核伺服器的應用情境,更能發揮多核運算的能力。進程的維護可以用很多作業系統層級的工具。Message
php的引用(就是在變數或者函數、對象等前面加上&符號)在PHP 中引用的意思是:不同的名字訪問同一個變數內容。與C語言中的指標是有差別的.C語言中的指標裡面儲存的是變數的內容在記憶體中存放的地址。變數的引用PHP 的引用允許你用兩個變數來指向同一個內容函數的傳址調用傳址調用我就不多說了 下面直接給出代碼";echo
PHP的異常機制的原理是什麼?在PHP每一個可獨立執行的op array最後的ZEND_HANDLE_EXCEPTION是用來幹什麼呢?讓我們從一個問題說起。對於一下代碼,onError明明執行了, 但是onException卻沒有執行, 為什麼呢?function onError($errCode, $errMesg, $errFile, $errLine) { echo "Error Occurred\n"; throw new Exception($errMesg);