發表文章

目前顯示的是 9月, 2011的文章

PHP CodeSniffer進階使用-新增CodeIgniter格式

安裝好 PHP_CodeSniffer ,內建有五種coding standards。如果您使用其中一種,就可以馬上使用了。 MySource PEAR PHPCS Squiz Zend 如果不是上述五種,需要增加其他的coding standards,該怎麼辦?喜歡自己動手做,可以參考官方文件 - Coding Standard Tutorial 自己做一套。也可以找別人寫好的…以 CodeIgniter - General Style and Syntax 為例,可以下載 CodeIgniter-for-PHP_CodeSniffer 安裝使用。 安裝方式很簡單,將 CodeIgniter-for-PHP_CodeSniffer 解壓縮到 PHP_CodeSniffer 存放coding standards的目錄下即可。 完成上述步驟,基本上 PHP_CodeSniffer 就可以使用 CodeIgniter的風格 作為檢查的依據。 不幸的, CodeIgniter-for-PHP_CodeSniffer 直到目前(2011/09)的版本是以CodeIgniter 1.7.x 的風格為依據,所以會有一些誤判…

PHP_CodeSniffer基本介紹

在維護程式時,最糟的狀況,莫過於該程式中毫無一行註解。最後,維護者可能必須要一行行追程式,已瞭解該程式的處理流程。或者,程式碼毫無編排、命名方式(全都是 i,x,y 等無意義字母)。這…維護時就是一件累人的工作… 也許,會有人要求必須在程式內寫註解(如phpDoc)。不過,又該如何確保程式內是否真的寫?或者…程式碼的撰寫風格是否有符合團體所要求的? 於是,需要一些工具來協助。以PHP為例,可以使用 PHP_CodeSniffer 首先,看一下 PHP_CodeSniffer 官方網站上的定義 PHP_CodeSniffer is a PHP5 script that tokenises and "sniffs" PHP, JavaScript and CSS files to detect violations of a defined coding standard. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers. 有注意到嗎? PHP_CodeSniffer 不支援PHP4 如何安裝PHP_CodeSniffer PHP_CodeSniffer 的安裝非常簡單,一行指令就結束… pear install PHP_CodeSniffer  

將getID3包成CodeIgniter的library

如何將 getID3 包成 CodeIgniter 的library,讓 CodeIgniter 呼叫、使用呢? getID3 的程式已經是一個class,因此,步驟就很簡單了… 將 getID3 的主程式,複製到 application/libraries (有需要的話,請自建目錄) 如官方文件 Creating Libraries 中所述的規則,將getid3.php的檔名改為Getid3.php 找出下面程式碼做修改。以我測試用的 getID3 版本 - stable version: 1.9.0 (1.9.1-20110810)為例。下面程式位於第69行附近…

getID3的注意事項與圖檔檢查範例

圖片
上次介紹 如何使用getID3來檢查使用者上傳的圖檔 。判斷方式雖然簡單…不過,個人在使用上覺得有些事情要稍微注意。針對傳回的array以及我在讀取mp3內的中文tag時遇到的狀況做說明。最後並附上測試項目的結果… array structure 在 getID3 範例 - demo.basic.php的程式碼中,最後有一段程式和程式註解,節錄如下… /*    Optional: copies data from all subarrays of [tags] into [comments] so    metadata is all available in one location for all tag formats    metainformation is always available under [tags] even if this is not called   */    getid3_lib::CopyTagsToComments( $ThisFileInfo );  

嘉明湖-天使的眼淚

圖片
雲霧飄渺的嘉明湖 趁者暑假的最後一個週末,終於造訪了台灣必去的100個景點之一『天使的眼淚-嘉明湖』。不過,卻由於熱帶氣漩轉變為南瑪都颱風,行進路線也由原本的往日本轉為直撲台灣南部。最後,走三天的嘉明湖行程就改為兩天!所幸,運氣非常的好。不但欣賞到高山的滿天星斗、走過向陽山、三叉山這兩座百岳。最後,嘉明湖也特別由雲霧中露臉讓我們欣賞 :) 每每開山路時,會有種敬佩台灣公路養護單位的心情。因為,在每次颱風、大雨造成的損害後,他們都有辦法再度修復,由顛頗泥濘的道路,變成平坦好走的柏油路。幾年前由台南進,經南橫公路 爬南橫三星 時感觸最深。在那之前,曾開車行經南橫公路,當時的路況很差,很多路段的路面非常顛波,路旁也無護欄。沒想到,再次經過南橫公路時,居然全部變成了平坦的柏油路。 南橫這兩天的殘月很漂亮 不過,近幾年天然災害越來越強烈,台灣山區的公路養護速度似乎慢慢無法跟上。這次坐夜車去嘉明湖途中,經過了蘇花以及南橫,沿途很多施工處,需要放慢車速緩緩前進…最後,我們也因為坍下來橫躺於南橫公路上的樹,而提早開始我們的嘉明湖行程。

如何檢查上傳圖檔

網站如果要開放讓使用者上傳圖檔,通常都在上傳介面中先做副檔名檢查,做第一層的篩選。但基於資安的考量,還是無法相信使用者上傳的圖檔是沒問題的。尚須對這些上傳到伺服器上的圖檔做檢查。 我們假設圖檔可能會有下列的狀況,要能檢查出來 圖檔的附檔名是否符合檔案實際格式? 如,將 .zip 改名為 .png 圖檔是否被塞入其他資訊? 如,利用 愛的機器 ,做出加工的圖檔 最基本的判斷方式,莫過於讀取圖檔head內的資訊來做判斷與檢查。 以php而言,最簡單的方式可以採用 getimagesize() 來取得圖檔相關資訊來做判斷。以上述第一個狀況而言, getimagesize() 會回傳FALSE,就可以檢查出來。 不過,第二個狀況就檢查不出來,因為他算是合法的圖檔。使用 getimagesize() 會得到如下的資訊…