在 WampServer 安裝 PEAR

PHP Pear

若果只用一句說話來解釋 PEAR,它是一個用來發佈和管理 PHP 可再用元件的系統,若果你還是不懂,下面有更詳細的說明,暫時你明白 PEAR 對 PHP 開發工作非常重要便夠了。很可惜的是 WampServer 並不包括 PEAR,所以我們需要手動安裝,幸好整個過程只需兩、三分鐘,讓我們看看應該怎樣做。 繼續閱讀 »

網站開發人員必備的 20 張速記片 (cheat sheet)

cheating

網站開發人員每天需要周旋於 PHP (或其他伺服器端編程語言)、SQL、JavaScript、HTML、CSS、數據庫預存程序及一些不同用途的開發架構之間,總會有「執筆忘字」的時候,這時你可能會向 Google 或編程書籍求教。不過,網上不少好心人替我們便製了一些「速記片」(cheat sheet),方便我們隨時查閱,Anson Cheung 在他的網誌蒐羅了 20 張網站開發人員必備的速記片。 繼續閱讀 »

在 WampServer 安裝虛擬伺服器 (virtual host)

virtual host

若果你需要同時開發數個項目,每個項目的程式碼都需要在網站的根目錄上執行,而且各有特定的伺服器設定要求,這時僅用一台網站伺服器便不敷應用,但使用多台機器,或者在一台機器上安裝多個伺服器又會增加管理的工作,虛擬伺服器便可解決這個問題,你只需為每一個項目安裝一個虛擬伺服器,各項目的程式碼便可以在獨立的環境下運作。 繼續閱讀 »

PHP 5.4 新功能:你應該升級嗎?

upgrade

期待已久的 PHP 5.4 終於出爐了,這一個版本特別令人期待,原因是它包含了很多原本要等到 PHP 6 才見得到的功能,由於 PHP 6 難產,這些功能便通通帶到 PHP 5.4,所以這次雖然只是升級了一個小版本編號,但包含的改動卻是巨大的,有些甚至會引致兼容性問題,PHP 開發人員不能輕忽視之。本文將會扼要介紹這個新版本的功能,與及討論一下在甚麼情況下你才需要升級到新版本。 繼續閱讀 »

PHP 的復活節彩蛋 (Easter Egg) 圖像

easter egg

PHP 解譯器隱藏了四幅圖像和網頁,人們稱為「PHP 的復活節彩蛋 (PHP Easter Egg)」,即是驚喜的意思。我將介紹如何顯示這四幅圖像和網頁,與及它們有甚麼安全性隱憂。 繼續閱讀 »

在 Windows 7 安裝 WampServer

安裝 WampServer

很多網站開發人員都喜歡在自己的桌面電腦上編寫和測試他們的程式,這樣做有幾個好處,首先你可以很容易測試程式,無須檔案上傳到伺服器,尤其是對於一些簡單的修改,可以節省很多工夫;另一個好處是程式的臭蟲不會隨便搗亂伺服器,無論它們有甚麼瘋狂的行為,也只是被侷限在你的電腦的某一個資料夾,絕不會惹怒服務供應商、伺服器上的其他用戶、伺服器上的其他系統、或者你的老闆。本文將會介紹如何在 Windows 7 上架設 Apache2、MySQL、及 PHP,也就是所謂的「WAMP」架構 ── Windows + Apache + MySQL + PHP。 繼續閱讀 »

尋覓理想的 PHP 編輯器

Seach for perfect PHP editor

你使用甚麼軟件來編輯 PHP 源碼、除錯、和管理項目?你對它滿意嗎?J Armando Jeronymo 最近因為某些原因不再使用本來的編輯器,於是展開了一趟 PHP / HTML / CSS / JavaScript 編輯器尋覓之旅,他在 How I Chose My Programming Editor 中講述了他怎樣訂立評審標準、遴選經過、與及他心目中的「完美」編輯器。 繼續閱讀 »

地理定位 (Geolocation):比你想像的容易

Jeremy Kendall 在 PHP Architecture 有一篇文章介紹怎樣使你的網站加入地理定位 (geolocation) 的功能,好處是可以根據訪客的身處的位置,提供適合的內容和語言,令他們享受更貼心的服務。加入這項功能比你想像的容易,甚至完全免費,Jeremy 提供了兩個解決方案,任何一個都可以在十分鐘內搞定。

繼續閱讀 »

PHP 開發人員比較喜歡以 Windows 為開發平台

以 Linux 為平台的網站伺服器遠比 Windows 的多,相信沒有人有異議,網站的編程語言則以 PHP 最受歡迎,相信爭議性也不大(可能的競爭對手只有 Java),這樣說來難道微軟這個電腦業的巨人在網站開發的環境中便毫無優勢嗎?未必,根據 Zend 最近針對全球使用 Zend Framework 開發人員所做的調查,在 Windows 上編寫 PHP 的人佔了 42%,排名第一,第二位的 Linux 則是 38.5%,MacOS X 則在第三位,19.1%。不過網站的運作平台 Linux 則以 85% 遙遙領先其他操作系統。

Google 教你優化 PHP,PHP 開發團隊指內容不確

Google 的 webmaster Eric Higgins 寫了一篇文章介紹怎樣優化 PHP,文章刊登不久,PHP 開發團隊其中一員 Gwynne Raskind 發文提出異議,指 Eric 所說的與事實不符,有些甚至完全相反,在 PHP 5 上幾乎沒有一項 Eric 的優化技巧能帶來實質的好處。我們摘錄了比較具爭議性的幾點,看看誰是誰非。

繼續閱讀 »

認識 PHP 的 Hashing Functions

Hashing function (散列函式) 在網頁應用中被廣泛採用,從數碼簽署、錯誤檢測、登入驗證、到壓縮儲存空間,由於它的原理比較複雜,很多人把它跟加密函式混淆,對於如何運用 hash function,如何選擇合適的 hash function,和它的優點缺點都不清楚,本文嘗試解答這些問題。

Hashing 是甚麼?

簡單地說,Hashing 是一種數據影射 (mapping) 的算法 (algorithm),通常用來把一大串不定長度的數據影射到一個固定長度的、較短的數據,這個固定長度的數據稱為 hashing value (散列值)。

繼續閱讀 »

PHP Cheat Sheets

Cheat Sheet 又稱做「作弊紙」、「小抄」或「備忘紙」,不過我比較喜歡稱她做「速記片」,它是把一些常用的東西用很簡潔的格式紀錄下來方便快速檢查和重溫,當你嘗試從 一個字串中抽取一部份內容,應該調用 PHP 的 mid()、substr()、還是 substring() ?1.3 == 1.30 是否為真?如果你有類似的煩惱,下面列出的免費 PHP 速記片一定可以幫的上忙:

繼續閱讀 »

解除 PHP max_execution_time 的限制

很多人都知道 php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變量指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的數據分析工作,伺服器會在 30 秒後強行中止正在執行的程式,這個問題其實有解決辦法的。

最簡單當然是修改 php.ini 中 max_execution_time 的數值,不過不是所有人都有權修改 php.ini,例如使用網頁寄存的開發人員,伺服器上的 php.ini 由很多網站共同使用,所以不能隨意修改。

另一個辦法是在 PHP 程式中加入 ini_set(‘max_execution_time’, ’0′),數值 0 表示沒有執行時間的限制,你的程式需要跑多久便跑多久。若果你的程式仍在測試階段,建議你把時限設定一個實數,以免程式的錯誤把伺服器當掉。

用 PHP 實現 HTTP 身份驗證

HTTP 身份驗證 (HTTP authentication) 是一種十分常用而容易實作的驗證方法,它倚賴網頁伺服器的內置功能,大量縮短所需編寫的程式碼,對於用戶驗證的要求不高的系統,是一個很實用的驗證方法。Evert Pot 在他的網誌上討論了如何用 PHP 實作這種用戶驗證。

基本驗證 (Basic Auth)

HTTP 身份驗證有兩個主要的驗證方案:「基本驗證 (basic authentication)」和「摘要驗證 (digest authentication)」,其中基本驗證比較容易實作,所以也比較常見,以下是一個以 PHP 實作的基本驗證:

繼續閱讀 »

十大技巧提升你的 PHP 實力

Smashing Magazine 的網站,Glen Stansberry 提出十個進階 PHP 技巧,可以即時提昇你的 PHP 編程實力,其中包括 SQL 注入攻擊的「作弊表」、簡化判斷句中的 else 部分、在不得已的情況下才使用正規表達式、三元運算子、Memcached 數據庫緩存系統等等,以下是詳細的內容。

PHP 在 1995 年從一個不起眼的編程語言開始,多年來迅速發展,現在已經是其中一種最流行的網絡開發語言,許多熱門網站均採用 PHP 來開發,絕大多數的程式和網站項目都是由這種流行語言寫成。

由於 PHP 如此受歡迎,任何網站開發人員幾乎都不能不認識 PHP,這份教程是為那些剛剛完成了 PHP 的學習初階,捲起衣袖準備大幹一番的人,下面列出的十個優秀技巧,是 PHP 開發人員必須學習,並在每次編程時使用它們,這些提示可以加快你們對 PHP 的熟練,使程式碼跑得更快捷,更簡潔,性能上更優化。

繼續閱讀 »

PHP 碰上 Python

用來編寫網頁應用的語言多不勝數,人們總喜歡拿來互相比較,初學者也有興趣知道不同語言的特性,這次我們介紹 Ashish 所寫的「PHP 碰上 Python」,從語言特性到執行效能,比較 PHP 和 Python 兩種語言。

我們根據什麼來判斷一種編程語言比另一種好?有人說是靈活性、開發環境的友善程度、牌照政策(開源的或商業性的)、社區、可移植性、動態數據類型、 支援不定數目的函式參數、把物件表達為一串字符的能力等等,文檔當然也是重要的因素,特別是當你尚未熟悉這種語言而需要提升你的技巧的時候。

繼續閱讀 »

PHP 基本分頁技巧

作為一個網頁開發人員,你經常要用容易閱讀的格式把數據顯示給用戶,舉例說你要從數據庫讀取一份雇員名單,並在網頁上羅列出來,若果名單只有區區十 多人,用一個簡單迴圈把所有人列印出來便好了,不是很簡單嗎?但若果你有五十名雇員又如何呢?一百人?一千人?把這麼多人一口氣羅列出來顯然不是一個好主意,Crayon Violent 在 PHP Freaks 寫了一篇教學文件,介紹如何透過 PHP 來實作分頁。

同一時間從數據庫扯出所有數據,你的用戶可能會一面呆等一面納悶,系統究竟發什麼神經老是沒有輸出?千呼萬喚有結果了,得到的竟然是一本完完整整的「三國演義」,在一頁版面上列印出來!據說古人的確是把不論長短的文章寫在一匹絹布上,一種好像稱為卷軸的東西,詳情我也不清楚,但廿一世紀的你不會也這麼做吧?

聰明的做法是把一份長長的名單分割成很多小段,每次只從數據庫提取及顯示一段,這可以大幅降低伺服器的工作量,也提升網頁的下載速度,用戶也比較容易消化屏幕上的資料,不會一下子被你弄至消化不良,這種做法就是分頁。

繼續閱讀 »

PHP 加密技術指南(二之二)

本文轉載了 資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表的 PHP 加密技術的教學文件第一部分介紹了 PHP 預設的加密功能,及擴充模組 MCrypt 的安裝及應用方法。本文將會繼續介紹其他擴充模組。

用 MHash 建立散列值

MHash 是一個免費的函式庫,提供大量散列值算法,這些算法可用來計算校驗值 (checksum)、訊息摘要 (message digests)、及建立數碼簽署。

繼續閱讀 »

PHP 加密技術指南(二之一)

資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表了一篇 PHP 加密技術的教學文件,討論如何取得和安裝各種 PHP 加密技術軟件包,以提高你的 PHP 應用程式的安全性。本文是系列的第一部分,第二部分在這裡。 在理想世界,加密和保安技術根本無須存在,但現實世界遠非完美,所以軟件開發商要花費大量時間和金錢,為應用程式設立保安措施,加密只是整個保安拼圖中的 一小塊,其他的尚有 SSL / TLS、數碼證書、數碼簽名等等。本文將會介紹如何用 PHP 來實作最常見的加密算法,除了描述 PHP 預設的加密功能,你也會看到各種各樣加密函式庫和軟件包。

本文所有範例均使用一個短小的純文本檔 textfile.txt,它就是密碼學所謂的「明文」(plaintext),明文加密後便變成「密文」(ciphertext)。本文使用的「明文」如下: For every difficult and complicated question there is an answer that is simple, easily understood, and wrong. HL Mencken

繼續閱讀 »

PHP vs .NET,如何抉擇?

很多人都曾經問過,或者被人問過,PHP 和 .NET 兩者哪一個比較好?Yahoo Answers 每隔一段時間便有人提出這個問題,很多網誌也參予了討論,大部分討論都集中於語言本身和開發工具的優劣,這方面受很多主觀因素影響,所以討論永遠沒完沒了,一位資深的新加坡 PHP 兼 .NET 開發人員在他的網誌上從另一個角度看這個問題。

作者首先粗略地調查一下網上有哪些比較 PHP 和 .NET 的文章,對的,就是使用 Google 來搜尋,得到大概二百六十萬筆結果,以下是作者認為比較有水準的三篇:

PHP vs. ASP .NET Redux PHP Vs ASP.net J2EE vs ASP.NET vs PHP

作者避開語言的技術細節,嘗試從一個開發人員在職業生涯的角度,即是從一個從餬口的角度,來看這個抉擇過程。

繼續閱讀 »