文章比較兩者的表現。
系統開發員整天提心吊膽程式有否安全漏洞,用人手檢查程式碼非常費時失事,加上限於經驗和知識,總難免掛一漏萬,Johannes Dahse 開發的 RIPS 把這種悶蛋的檢查工作自動化,可能對你有幫助。
很多 PHP 開啟檔案的函式包括 file()
, fopen()
, file_get_contents()
等等,除了開啟本機硬碟中的檔案,也可以開啟網絡上的資源,例如:
網絡上有很多所謂「爬網機器人」(spam bot),專門收集網頁中的各種資訊,其中一種它們最喜愛的東西就是電郵地址 (email address),因為這些地址可以儲存起來,日後用來發放「濫發電郵」(spam),或者賣給提供這些服務的公司。其實我們可以把電郵地址進行「HTML 編碼」(HTML encoding),避免電郵地址被這些討厭的機器人收集,但對真人用戶沒有絲毫影響。
設定 PHP 有很多方法,最正式的可以使用 php.ini,但它會影響伺服器內所有 PHP 程式,最靈活的是 ini_set(),可惜不是所有東西都可以用它來設定。還有其他方法嗎?甚麼時候用甚麼方法最妥當?本文比較了 6 種不同的 PHP 設定方法。
電台的交通消息報導經常都這樣說:「……今天的日落時間是黃昏 7 時,明早的日出時間是 6 時 13 分,根據交通法例,在日落之後至日出之前,車輛必須開著車頭燈……」用 PHP 計算日出和日落時間非常簡單。
你見過沒有英文字母和數字的 PHP 程式嗎?這是可能的嗎?Gareth Heys 有一篇教學文件,示範如何不使用英文字母和數字,創造出 PHP 的變量、字符串、數字、陣列等。Alex Inführ 以此為基礎,構思了創造 PHP 函式的方法,他的程式只用了 7 個不同的字符:$_=+();
若果只用一句說話來解釋 PEAR,它是一個用來發佈和管理 PHP 可再用元件的系統,若果你還是不懂,下面有更詳細的說明,暫時你明白 PEAR 對 PHP 開發工作非常重要便夠了。很可惜的是 WampServer 並不包括 PEAR,所以我們需要手動安裝,幸好整個過程只需兩、三分鐘,讓我們看看應該怎樣做。
網站開發人員每天需要周旋於 PHP (或其他伺服器端編程語言)、SQL、JavaScript、HTML、CSS、數據庫預存程序及一些不同用途的開發架構之間,總會有「執筆忘字」的時候,這時你可能會向 Google 或編程書籍求教。不過,網上不少好心人替我們便製了一些「速記片」(cheat sheet),方便我們隨時查閱,Anson Cheung 在他的網誌蒐羅了 20 張網站開發人員必備的速記片。
資訊科技日新月異,若果回看多年前的經典文章,還有多少東西至今仍然正確?我最近重看了 Joel Spolsky 在 2003 年寫的「The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)」,竟然絲毫沒有感到過時,當年他臭罵的白癡開發員,至今仍然充斥在我們的身旁,他極力澄清的誤解,至今仍然被很多自以為是的開發員奉為真理。
Amanda Steigerwalt 有一篇文章介紹 PHP 5 新引入的「類型提示」(type hinting) 功能,你可以在函式宣告中指定某些參數的數據類型。當你呼叫該函式,PHP 將檢查有關參數是否符合指定的類型。如果沒有,將引發一個執行時錯誤,並停止程式繼續執行。
儘管很多人都談論過 HTML5 寫的網頁遊戲,你也可能玩過一些,但大部份都是簡單的射擊、解謎、或平面移動的遊戲,不能跟 flash、Windows、甚至遊戲機為平台的遊戲多姿多采……直到你體驗過 Trigger Rally Online (TRO)。
我們經常在討論區 / 網誌上見到「….五小時前發表」、「….三個月前發表」之類表示時間的方式,這有別於傳統的「在 2012 年 3 月 11 日發表」,這種方式比較人性化,也使讀者更快速地建立一個概念這篇文章的歷史究竟有多久遠。Barrett 在他的網誌示範了怎樣用 PHP 寫一個函式,只要輸入一個 Unix 時間戳記 (timestmap) 它便會送回一個類似「五小時前」、「三個月前」的字符串。
期待已久的 PHP 5.4 終於出爐了,這一個版本特別令人期待,原因是它包含了很多原本要等到 PHP 6 才見得到的功能,由於 PHP 6 難產,這些功能便通通帶到 PHP 5.4,所以這次雖然只是升級了一個小版本編號,但包含的改動卻是巨大的,有些甚至會引致兼容性問題,PHP 開發人員不能輕忽視之。本文將會扼要介紹這個新版本的功能,與及討論一下在甚麼情況下你才需要升級到新版本。
PHP 解譯器隱藏了四幅圖像和網頁,人們稱為「PHP 的復活節彩蛋 (PHP Easter Egg)」,即是驚喜的意思。我將介紹如何顯示這四幅圖像和網頁,與及它們有甚麼安全性隱憂。
很多網站開發人員都喜歡在自己的桌面電腦上編寫和測試他們的程式,這樣做有幾個好處,首先你可以很容易測試程式,無須檔案上傳到伺服器,尤其是對於一些簡單的修改,可以節省很多工夫;另一個好處是程式的臭蟲不會隨便搗亂伺服器,無論它們有甚麼瘋狂的行為,也只是被侷限在你的電腦的某一個資料夾,絕不會惹怒服務供應商、伺服器上的其他用戶、伺服器上的其他系統、或者你的老闆。本文將會介紹如何在 Windows 7 上架設 Apache2、MySQL、及 PHP,也就是所謂的「WAMP」架構 - Windows + Apache + MySQL + PHP。
你使用甚麼軟件來編輯 PHP 源碼、除錯、和管理專案?你對它滿意嗎?J Armando Jeronymo 最近因為某些原因不再使用本來的編輯器,於是展開了一趟 PHP / HTML / CSS / JavaScript 編輯器尋覓之旅,他在 How I Chose My Programming Editor 中講述了他怎樣訂立評審標準、遴選經過、與及他心目中的「完美」編輯器。
Jeremy Kendall 在 PHP Architecture 有一篇文章介紹怎樣使你的網站加入地理定位 (geolocation) 的功能,好處是可以根據訪客的身處的位置,提供適合的內容和語言,令他們享受更貼心的服務。加入這項功能比你想像的容易,甚至完全免費,Jeremy 提供了兩個解決方案,任何一個都可以在十分鐘內搞定。
以 Linux 為平台的網站伺服器遠比 Windows 的多,相信沒有人有異議,網站的編程語言則以 PHP 最受歡迎,相信爭議性也不大(可能的競爭對手只有 Java),這樣說來難道微軟這個電腦業的巨人在網站開發的環境中便毫無優勢嗎?未必,根據 Zend 最近針對全球使用 Zend Framework 開發人員所做的調查,在 Windows 上編寫 PHP 的人佔了 42%,排名第一,第二位的 Linux 則是 38.5%,MacOS X 則在第三位,19.1%。不過網站的運作平台 Linux 則以 85% 遙遙領先其他操作系統。
Hashing function (散列函式) 在網頁應用中被廣泛採用,從數碼簽署、錯誤檢測、登入驗證、到壓縮儲存空間,由於它的原理比較複雜,很多人把它跟加密函式混淆,對於如何運用 hash function,如何選擇合適的 hash function,和它的優點缺點都不清楚,本文嘗試解答這些問題。
Cheat Sheet 又稱做「作弊紙」、「小抄」或「備忘紙」,不過我比較喜歡稱她做「速記片」,它是把一些常用的東西用很簡潔的格式紀錄下來方便快速檢查和重溫,當你嘗試從一個字串中抽取一部份內容,應該調用 PHP 的 mid()、substr()、還是 substring() ?1.3 == 1.30 是否為真?如果你有類似的煩惱,下面列出的免費 PHP 速記片一定可以幫的上忙:
很多人都知道 php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變量指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的數據分析工作,伺服器會在 30 秒後強行中止正在執行的程式,這個問題其實有解決辦法的。
HTTP 身份驗證 (HTTP authentication) 是一種十分常用而容易實作的驗證方法,它倚賴網頁伺服器的內置功能,大量縮短所需編寫的程式碼,對於用戶驗證的要求不高的系統,是一個很實用的驗證方法。Evert Pot 在他的[網誌][1]上討論了如何用 PHP 實作這種用戶驗證。
在 Smashing Magazine 的網站,Glen Stansberry 提出十個進階 PHP 技巧,可以即時提昇你的 PHP 編程實力,其中包括 SQL 注入攻擊的「作弊表」、簡化判斷句中的 else 部分、在不得已的情況下才使用正規表達式、三元運算子、Memcached 數據庫緩存系統等等,以下是詳細的內容。
用來編寫網頁應用的語言多不勝數,人們總喜歡拿來互相比較,初學者也有興趣知道不同語言的特性,這次我們介紹 Ashish 所寫的「PHP 碰上 Python」,從語言特性到執行效能,比較 PHP 和 Python 兩種語言。
作為一個網頁開發人員,你經常要用容易閱讀的格式把數據顯示給用戶,舉例說你要從數據庫讀取一份雇員名單,並在網頁上羅列出來,若果名單只有區區十多人,用一個簡單迴圈把所有人列印出來便好了,不是很簡單嗎?但若果你有五十名雇員又如何呢?一百人?一千人?把這麼多人一口氣羅列出來顯然不是一個好主意,Crayon Violent 在 PHP Freaks 寫了一篇教學文件,介紹如何透過 PHP 來實作分頁。
本文轉載了資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表的 PHP 加密技術的教學文件,第一部分介紹了 PHP 預設的加密功能,及擴充模組 MCrypt 的安裝及應用方法。本文將會繼續介紹其他擴充模組。
資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表了一篇 PHP 加密技術的教學文件,討論如何取得和安裝各種 PHP 加密技術軟件包,以提高你的 PHP 應用程式的安全性。本文是系列的第一部分,第二部分在這裏。在理想世界,加密和保安技術根本無須存在,但現實世界遠非完美,所以軟件開發商要花費大量時間和金錢,為應用程式設立保安措施,加密只是整個保安拼圖中的一小塊,其他的尚有 SSL / TLS、數碼證書、數碼簽名等等。本文將會介紹如何用 PHP 來實作最常見的加密算法,除了描述 PHP 預設的加密功能,你也會看到各種各樣加密函式庫和軟件包。
很多人都曾經問過,或者被人問過,PHP 和 .NET 兩者哪一個比較好?Yahoo Answers 每隔一段時間便有人提出這個問題,很多網誌也參予了討論,大部分討論都集中於語言本身和開發工具的優劣,這方面受很多主觀因素影響,所以討論永遠沒完沒了,一位資深的新加坡 PHP 兼 .NET 開發人員在他的網誌上從另一個角度看這個問題。
Nexen 發表了 2008 年 4 月份的 PHP 使用統計,他們調查了 2,800 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,250 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
經常有人埋怨市場上付給 PHP 開發人員的工資太低,或者 PHP 開發人員競爭激烈以致找工作困難,也有人說 PHP 開發人員的地位比不上其他編程語言,例如 Java 或者 Oracle 數據庫的 PL/SQL。PHP Classes 的 Manuel Lemos 為廣大的 PHP 愛好者提供十個找工作的秘訣,這些秘訣其實並不侷限於 PHP 的開發人員,所有資訊科技行業的工程人員都可以從中得到某些啟示。
不少 PHP 開發者都認同考取 Zend 認證工程師 (ZCE) 是一個確立個人 PHP 開發水平的重要一步,它也可以用作評估自己的技能,與及向同事和潛在客戶展示自己的經驗的途徑。Zend 在他們的網頁介紹了考取 Zend 認證工程師的好處。其中一位 ZCE Alex Netkachov 在自己的網誌分享他考取這個資格的經驗:甚麼是 ZCE,如何準備,如何通過它,通過它之後會發生甚麼事。
Nexen 發表了 2008 年 2 月份的 PHP 使用統計,他們調查了 2,770 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,260 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
PHP 的其中一位主要貢獻者 Derick Rethans 在他的網誌上表示,PHP 5.3 將會提供一個比 strtotime() 和 date_create() 函式更有彈性的新函式 date_create_from_format() 與及 DateTime 的新靜態成員函式 createFromFormat(),回應 PHP 社群長期以來提出的要求。
CodeIgniter 是一個有名的 PHP 開發架構,它以嚴格的 MVC 架構、完備的文檔和簡單易學成為很多 PHP 開發者喜愛的開發工具,很多開源系統由於都是靠社群自發地開發和維護,這類社群對編寫文檔一向不太熱中,所以 CodeIgniter 完整的文檔便顯得特別有吸引力。Akash Mehta 在 Developer Tutorials 網站上發表了一篇 CodeIgniter 的教學文件。
雖然 PHP 5.3 尚未推出,但是它的新功能在網上已經被熱烈討論,官方預計的推出日期是 2008 年第一季,但是延期出貨是軟件工業的不成文規矩,在等待的同時,不妨研究一下這個新版本的各項新功能。
Akash Mehta 在他的網誌中討論了五個成為更優秀 PHP 開發者的方法。Akash 的目的是要提高你的生產效率、少寫代碼、並讓你的 web 應用程序實現更多功能。
Nexen 發表了 2008 年 1 月份的 PHP 使用統計,他們調查了 2,870 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,250 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
「延遲靜態綑綁」(late static binding)一直是 PHP 社群的熱門討論話題,隨著 PHP 5.3 得來臨,這項功能終於得以實現。究竟何謂「延遲靜態綑綁」?它有甚麼用處?Sean Coates 在她的網誌提供了一個範例說明這種技術,並介紹它的實際用途。
極具爭議性的 goPHP5 工程已經到了它的終點(實際的結束日期是 2008 年 2 月 5 日),它的其中一個創辦人 Robert Douglass 一直認為這個項目是成功的,他說:「自從推辦 goPHP5,已經有超過 100 個軟件開發項目和超過 200 個網絡主機支援 PHP 5.2。相對幾個月前,現在可以輕鬆地找到託管解決方案,軟件開發商亦可以使用 PHP 5 具吸引力的新功能,而不需要擔心他們的用戶別無選項。」
I-nfotech 有一篇文章列出十個每一個 PHP 開發者都應該認識的開發項目,我們都知道 PHP 擁有全世界最龐大的原碼程式庫(不知道的話現在仍不算遲),所以在開發過程中幾乎所有你需要的功能都已經有人寫好了,你只需插入你的項目中便可以使用,文章的作者有多年的網頁開發經驗,他總結多年的心得,列出了十個每一個 PHP 開發者都應該認識的 PHP 函式庫。你的要求可能不同,但這篇文章的內容仍然很值得參考。
Nexen 發表了 2007 年 8 月份的 PHP 使用統計,他們調查了 2,710 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,180 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
若果你已經看過 Yahoo! 的 PHP 面試題目(第一部份)、第二部份及第三部份,請繼續觀看最後一部份第十七至第二十二題。首先會先列出題目,題解會寫在後面。
若果你已經看過 Yahoo! 的 PHP 面試題目(第一部份)及第二部份,請繼續觀看第三部份第十一至第十六題,其餘題目已經在第四部份轉載。每一部份的都會先列出題目,題解會寫在後面。
有否想像過網絡界的巨頭如 Google 和 Yahoo 怎樣評審應徵者的 PHP 水平?Nick Halstead 在他的網誌列出了 22 道 Yahoo! 在正式面試前給應徵者的 PHP 筆試題目,Matt Wilkin 看到後一時手癢,在他自己的網誌上寫下了詳細的題解,你不妨也測試一下自己的 PHP 就經到達了哪一個水平。我們會把這 22 道題目連同 Matt Wilkin 的提解分開數部份譯載,每一部份的都會先列出題目,題解會寫在後面,第二部份、第三部份和第四部份也已經刊登。
Cute Editor for PHP 新推出了 6.0 版本,這是一個「所見即所得」(WYSIWYG)的線上 HTML 編輯器,PHP 應用開發人員可以藉著它把傳統的 HTML textarea 換成一個功能強大的所見即所得內容編輯器,這個編輯器可以在多種瀏覽器上運行,包括 IE、Firefox、Mozilla、Netscape、和 Safari,在無數免費的線上 WYSIWYG 編輯器可供下載的情況下,以港幣一千元購買這個編輯器是否值得呢?
系統保安網站 Hacker Webzine 最近有一篇文章,介紹兩個可能洩漏伺服器系統資訊的 PHP 漏洞,第一個有關伺服器變量的處理方法,第二個則有關 PHPSESSID 對話標識在用戶端被修改,嚴格來說這兩個不是 PHP 語言的毛病,只要編程人員小心謹慎,一切問題都可以避免。
Nexen 發表了 20076 年 7 月份的 PHP 使用統計,他們調查了 1,120 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 2,610 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
PHP Documentorr 是一個自動從原碼抽取注釋,然後產生 API 說明檔的工具,功能跟 Java 世界的 JavaDoc 差不多,分別是 PHP Documentor 是用 PHP 寫成。它的輸出檔案包括 HTML、PDF、CHM 和 XML DocBook,使用 Smarty 產生輸出檔案,所以改變輸出的排版格式十分簡單容易,所有原碼都有語法醒目顯示。使用方面,PHP Documentor 可以透過命令行或者網頁介面操作,運作速度極快。兼容 PHPXRef 和 JavaDoc 的注釋標籤,另外又有它自己的定義的標籤,構成功能強大的文檔產生工具。
PhpWebApp 是一個應用開發架構,使得開發以關係數據庫為基礎的 PHP 網頁應用程式更加容易和簡單。它透過從 XHTML 延伸出來的 XML 模板,把設計和改變佈局的工作,從邏輯的實作中分割開來。它也藉著提供事件為本的編程模式,簡化應用程式邏輯的實作。此外,PhpWebApp 力求為網頁應用開發人員提供模塊化和代碼重用。
「命名空間」(namespace)一直是 PHP 用家強烈要求的功能,據 PHP Magazine 的報導,「命名空間」終於首次放入 PHP6 的原碼庫(CVS)公開測試,當廣大的 PHP 社群為了從 PHP4 升級到 PHP5 而鬧得熱烘烘,PHP6 正以穩定的步伐向著正式推出的階段邁進。根據 Wikipedia 命名空間的意思是:
這一次是真正的官方消息了── PHP.net 剛剛宣布 PHP4 只會開發至 2007 年年終,此後 PHP4 便不再會有新版本,即使是嚴重安全性補丁,也只會支援至 2008 年 8 月 8 日!
PHP5 推出已經三年,但是根據最新的 PHP 使用統計,在所有使用 PHP 的網站中,PHP5 的採納率不足 10%,於是有人在網上發起「向 PHP5 過渡」運動,以 2008 月 2 月 5 日為目標,期望主要的應用程式開發團隊,與及服務供應商和系統管理員,把旗下的 PHP 系統轉移到 PHP5,能夠做出這個承諾的,他們的商標都會在「向 PHP5 過渡」的網站上刊登。
Nexen 發表了 2007 年 6 月份的 PHP 使用統計,他們調查了 1,090 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 2,550 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
有沒有想過嘗試一下最新的 PHP 功能?我們在 PHP 的下載頁面可以找到 PHP 的原始碼,只要配置好安裝設定檔,準備好所需的編譯工具,便可以製作一個屬於你的 PHP,你可以自行決定需要甚麼模組,不需要甚麼模組,怎樣優化程式碼,甚至安裝補丁,測試最新的版本和功能。
又一個「十大排名榜」,這一個由 Jehzeel Laurente 列出的十大 PHP MVC 開發架構,是作者根據他的個人經驗和喜好選取的,其中有一些是響當當的著名牌子,也有一些較冷門的架構。
「PHPUnit 可以幫你編寫 PHP 類別測試程式,它會分析 PHP 類的原始碼然後自動產生一個測試類的骨架程式。」PHP 專家兼 PHPUnit 的開發者之一 Sebastian Bergmann 在他最近的一篇網誌這樣說,他說在類別原始碼中使用最新支援的 @test 註解標籤(annotation) PHPUnit3 將會變得更加強大。
PHP Hacks 有一篇報導介紹 PHP 6.0 將會有甚麼轉變,其中包括放棄三項最令人困擾的功能:register_globals、magic_quotes_gpc 及 safe_mode。第一項會引起巨大的安全漏洞,第二項會使數據混亂,也令到搬遷伺服器時產生不必要的困難,最後一項經常被人誤解,它的名字令人產生安全的錯覺。
一名在 YoungCoders Computer Programmers Forum 的 co-administrator Mau 寫了一篇有關 PHP tick 的教學文件,介紹 tick 的用途和一些使用 tick 的範例。
Tobias Schlitt 最近發現他的 ez Mail 元件與 Qmail 有點不咬弦,送出的郵件標題多了額外的換行字符,以致部分郵件閱讀器出現錯誤的郵件標題,甚至無法接收郵件。
HKPUG 經常報導專家們提出有關 PHP 安全性的忠告,其實很多忠告都是幾乎「常識」的水平,即使沒有專家的提點也不應該觸犯,但是我們仍然不斷在討論區見到網友編寫漏洞百出的 PHP 程式,看得人觸目驚心,這裏我們再次介紹一篇有關 PHP 安全性的建議。
PHP DocWriter 是一個用來產生 OpenOffice.org XML(即 StartOffice/OpenOffice.org 文件)的 PHP 類別(class),它也可以直接聯繫 OpenOffice 應用程式來進行檔案格式轉換,把 OpenOffice.org XML 檔案轉換成任何 OpenOffice 支援的格式。
在 Turn up the Crank 有一位作者分享他使用 PHP5、Sqlite、Windows 的經驗。作者需要一個數據庫儲存資料,由於涉及的資料處理工作很簡單,所以他選擇了 Sqlite,結果他發現:
Nexen 發表了 2006 年 8 月份的 PHP 使用統計,他們調查了 1,100 萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域後,共有 820 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
Jacques Noah 在 Dev Shed 發表了一篇 PHP 教學文件,介紹如何利用 PHP 來讀取、寫入和建立檔案。Jacques 從 Windows 和 Unix 環境下檔案的權限開始,然後利用大量例子和說明來講解如何透過 PHP 來讀取、寫入和建立檔案的步驟,也說明在多人編輯同一個檔案的情況下,如何鎖著檔案以防止衝突。
Hardened-PHP 最近推出了 Suhosin 測試版(beta version),這是一個從原始碼層面提升 PHP 安全性的系統,所以不論是已知和尚未發現的安全性漏洞,不論這些漏洞出現在應用程式還是在 PHP 的核心部分,Suhosin 的安全關卡都可以防止這些漏洞做成破壞。
Dennis Pallett 在 PHPit 發表了第二篇利用 PHP 和 GD Library 處理圖像的教學文件,HKPUG 曾經介紹過這個主題系列的第一篇文章,繼承第一篇的基礎知識,第二篇文章將介紹不同的放大縮小圖像方法、加添水印的技巧等。
這個標題沒有惡意,只是用來吸引大家的注意力,文章的作者 Stefan Mischook 在他的網誌比較了 Ruby 和 PHP 兩種經常被人拿來比拼的網頁開發語言,事實上一些 PHP 社群對於 Ruby 近年推出的優秀(但並不完美)開發架構 Rails 有一點恐懼,藉著 Rails 的關係 Ruby 的普及程度大幅提高,對 PHP 構成一定的威脅。所以 Stefan 嘗試解答「PHP 會被 Ruby 殺死嗎?」
Stefan Mischook 在他的網誌說,設計式樣(design pattern)本身並不壞,只要用在恰當的地方,他說:「我們沒有理由用一部十八輪大卡車來拖動一張椅子。」他觀察到自從 PHP5 推出後,整個社群逐漸向著高階的編程技術發展,例證包括廣泛地使用物件導向概念和設計式樣。常用的設計式樣包括:
數據庫跟其他工具一樣,若果不正確地使用,很容易出現濫用的情況,Jack Herrington 在一篇文章中說,你可以在 PHP 應用程式中建立數據庫、存取資料,然後在其上編寫商業邏輯,達成這些目標很有方法,可惜很多人仍然把事情弄糟。在這篇文章中他闡述數據庫設計,和存取數據庫的 PHP 程式的五種常見毛病,還有如何避開這些毛病,文中並附有大量實例。這五種毛病是:
John Taber 承認網絡上已經有很多開發架構的宣傳和喧鬧聲,但是他仍然要在他的網誌中問:「我們需要開發架構嗎?」他還提出了其他問題,包括「一個網絡程式應該具備怎樣的結構?」、「怎樣才能輕快而有效率地完成工作?」他經過詳盡的研究後把意見按發表者的性格分為三類:豪情蓋天的開發人員、Rails 的忠實支持者、有實力的應用程式開發者。他認為自己正是第三類人,就是那種不在乎甚麼語言、甚麼架構,最重要把事情做好,程式容易維護,與及可以把成品儘快推出市場的開發策略,這類人需要的正是開發架構。
「設計樣式」(design pattern) 這個概念最早是由軟件界「四大寇」(即 Erich Gamma, Richard Helm, Ralph Johnson, 和 John Vlissides)所撰寫的 Design Patterns 中提出,軟件開發者累積多年的經驗,知道在某些特定的情況下使用特定的技巧,可以得到最有效率和最好的結果,這些標準技巧就是所謂的「設計樣式」。
Nexen 發表了 2006 年 6 月份的 PHP 使用統計 ,他們調查了 1,100 萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域後,共有 550 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
Steven Choy 在他的個人網頁介紹三個由 PHP 開發與及使用 MySQL 的免費 FAQ 系統,透過 Google 他搜索到一些使用這三個系統的網站,可以讓我們實在地看一下這幾個系統的使用情況。Steven 說:
Justin Silverton 在他的個人網誌列出了首 50 大受歡迎的 PHP 編輯器,網羅了免費和商業性的軟件,排列首位的是 PHP Edit 1.2.5,這是一個在 Windows 上操作的 PHP 編輯器,同時提供免費、共用及商業性的許可證,第二位的是 Dreamweaver 8,一個在 Windows 中操作的商業軟件,NuSpere 的 PHPED 4 則緊隨其後,這一個商業性編輯器可以在 Windows 和 Linux 上運作。以下的圖像顯示 Silverton 所列出的首 10 位 PHP 編輯器:
OWASP 發表了一篇名為 PHP Top 5(PHP 五大常見保安問題)的文章,SANS Top 20 2005’s PHP Section(2005 年度 SANS 互聯網 20 大安全漏洞 PHP 章節)就是根據這一篇文章的研究而寫成,研究的方法是在 Bugtraq 上搜尋所有包含 PHP 的文章,對每一個個案進行分析及分類,然後作者列出五大最常見的保安問題,與及他們的預防方法,在文章的末尾做這還列出了一些參考資料,對於編寫安全堅固的 PHP 應用程式很有幫助。
IBM 的 developerWorks 有一篇介紹如何使用 PHP 和 Sajax 來編寫簡單應用程式的教學文件,很多人對 Ajax 這種嶄新的網頁技術都認識不深,實際運用它來編寫網頁的更少,這篇文章透過建立一個簡單的相簿系統,從純粹使用 PHP 開始,逐步加入 Ajax 功能,中間加插對 Ajax 的介紹,使讀者明白 Ajax 的特色,它如何突破了傳統的網站設計理念,怎樣在實際的設計中加入 Ajax 的元素。
若果說每隔幾天便有一個新的 PHP 的開發架構推出,一點也不誇張,網上也有不少討論哪些架構「最好」,哪些最受「歡迎」之類的文章,但是對於如何選擇一個合適你的架構卻鮮少論及,針對這個問題 Marz 提出了他的見解。
在 thecssweblog 有一篇由 Amber Rhea 寫的有關使用 PHP 來動態控制 CSS 的文章。文章引述 Patrick Fitzgerald 另一篇有關使用 PHP 來控制顏色的文章。
PHP Class Repository 的創辦人 Manuel Lemos 在他的網誌寫了一篇長文,提出一些選擇架構的忠告,也解釋了為何有些架構比其他架構更受歡迎,受到更廣泛的注意。最後他列出了一串架設 PHP Class Repository 的程式包。
CentreSource 的技術員 Chris Wage 寫了一篇文章,以偵探故事的形式描述他如何解決一個 PHP Session 生命週期的臭蟲。
根據最新一期 Tiobe Programming Community 的報告,PHP 在最受歡迎編程語言排行榜已經追貼 C++,有望進入頭三名的位置,頭兩名分別是 Java 和 C,落後在 PHP 和 C++ 後面的是 Visual Basic 和 Perl。
Nexen 發表了 2006 年 4 月份的 PHP 版本安裝統計 ,他們調查了 7 千 7 百萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域,共有 770 萬個網站參與了這次統計。