星期五, 十一月 02, 2007

SVN 將所有 ? 狀態 的檔案列入新增

SVN 在第一次使用 Import 後, 就都要使用 add 來新增檔案, 通常在修改完後, 會 svn status 看看這次有改哪些檔案, 順便看看哪些檔案需要 add 進去.

 (閱讀全文)

星期五, 十月 12, 2007

PHP5 物件相互引用, 造成 Memory Leak

PHP5 的 物件A 裡面再 new 物件B, 然後 unset(物件A), 會發現 Memory 還是存在(Memory Leak) 的狀況, 然後如果程式繼續不斷的遞迴跑下去, 很快記憶體就會使用完, 然後就會出現 PHP Fatal error:  Allowed memory size of .. 等的錯誤訊息.

可詳見: Bug #33595 recursive references leak memory

 (閱讀全文)

星期二, 十月 09, 2007

MySQL Timestamp 型態 的 屬性(新增/修改 自動更新 Timestamp型態 的 欄位)

MySQL 的 timestamp 型態 的屬性比較特別, 預設 timestamp 的屬性是, 只要有值 新增/修改(同一個row), MySQL 會自動幫你將 "timestamp 型態的欄位" 寫入現在時間.

有兩種屬性可供調整使用:

  • 自動初始化: 此欄位 寫入 資料時, 自動將 timestamp 的欄位寫入現在時間(建立時, 自動寫入時間).(DEFAULT CURRENT_TIMESTAMP)
  • 自動更新: 此欄位 修改 資料時, 自動將 timestamp 的欄位寫入現在時間(更新時, 自動寫入時間). (ON UPDATE CURRENT_TIMESTAMP)
 (閱讀全文)

星期日, 十月 07, 2007

JavaScript Fix CSS, 讓 IE 5/6 的 CSS 顯示/動作 跟 IE 7 一樣

同樣的 CSS 在 IE5/6/7 顯示的效果都有可能會有所不同, 所以就有人寫 JavaScript 來解決 IE7 上可以跑, IE5/6 不能跑(或不能顯示)的問題. (ex: png 透明圖 就是最常遇到的問題).

 (閱讀全文)

星期四, 十月 04, 2007

PHP: 於 Apache1.3 和 Apache2.0 抓到的 $_SERVER['SCRIPT_NAME'] 值不同

所以說最近踩的地雷特別多, 要判斷目前是否在此頁面, 通常可以用 $_SERVER['SCRIPT_NAME'] 來抓值, 但是在 Apache 1.3 和 Apache 2.0 抓到的值是不一樣的.

 (閱讀全文)

星期三, 十月 03, 2007

JavaScript: substr() 負數的算法 IE, Firefox 不同

最近踩的地雷真多, IE 對 margin-top 的負數, IE6/7 都不同, 然後臨時又發現 JavaSciprt 的檢查在 IE 有問題, 大概情況是如下:

做圖片上傳, javascript 的檢查最簡單的就是檢查檔名後四個字元, 再轉小寫, 去看看是不是 .jpg, jpeg, .bmp, .png ... 等. 於是就用 substr 來取最後四個字元囉~

 (閱讀全文)

星期日, 九月 16, 2007

使用 gettext 來實做 PHP 多國語系支援(I18N)

要做多國語系支援的網站或程式有很多方式, 常見的是設某種國家的語系檔, 然後檔案內都是變數, 之後程式依照使用者的語系的, 去讀語系檔, 以此來達成多國語系.

而 gettext 是另一種標準的方案, 可以 ls /usr/share/locale/zh_TW/LC_MESSAGES 看看, /usr/share/locale 放著各種語系的翻譯檔(翻譯系統程式, ex: apt.mo, dpkg.mo)(*.mo是編譯過的翻譯檔).

現在來用 php + gettext 實做多國語系的支援吧~

 (閱讀全文)

星期四, 九月 13, 2007

好文: 抓蟲特攻隊秘技大公開(Debug)

程式 Debug 是一定要的, 說寫出來的程式沒有任何問題, 請不要相信他的傻話(程式只有幾行的不在此限, 或者 請想像我指的是一套 系統).

此人(或說 下述四篇文章)把 Debug 的流程做整理和撰寫, 不管初學者或資深者都蠻適合研讀一下, 不一定要四篇都看, 主要是看第一篇.

最後一篇的這句話 一次只解決一個臭蟲 蠻經典的, 這句話的另一個意思是, 不要解 1 個 Bug 後,  又生出 2個其它的 Bug 來. XD

 (閱讀全文)

星期五, 八月 31, 2007

PHP function: 亂數密碼產生

亂數密碼產生的 function 蠻常用的, 還是直接 Release 一個出來修改比較方便 :P

總之密碼原則就是 6~8 個字以上, 然後包含英數字大小寫, 再加上符號, 就是比較安全的密碼, 通常想密碼很辛苦, 最簡單的就是用這種產生器, 產生出一組符何上述條件的, 想辦法背起來, 半年 ~ 1年換個一次密碼 (建議是 3個月要換一次. XD)

 (閱讀全文)

星期五, 八月 24, 2007

Debian Linux: ADSL PPPoE 自動重撥 Script

昨天早上網路(PPPoE)斷線, 沒有察覺到, 正好整天都不在家, 在外面要連回來查資料才發現, 這個小站死掉還蠻痛苦的(資料都懶得記, 直接寫在上面), 果然有些東西還是得要用腦袋記... XD

但是想想用腦袋記還是太辛苦(頭腦不好 XD), 還是寫隻 Script 做斷線重撥的動作好了. Orz..

 (閱讀全文)

星期四, 八月 23, 2007

Javascript Regex 的 字串比對(Match) 與 取代(Replace)

Javascript 的 Regex 該怎麼使用, 如何做 Match 和 Replace 的動作, 語法該怎麼寫.

 (閱讀全文)

星期三, 八月 22, 2007

Javascript 設定 getElementById 屬性的方法

紀錄 Javascript 設定 getElementById 的方法, 和 Style 有哪些屬性可以設定.(暫不討論 Framework 的寫法, 不過 style 能設的屬性是都一樣的. XD)

 (閱讀全文)

星期一, 八月 20, 2007

PHP 等比例縮圖程式

兩個 function, 一個算比例要多少(getResizePercent), 另一個 function 依照比例將圖片縮小, 縮到剛好符合預計縮小的其中一邊的尺寸(ImageResize).

使用上只要將這兩個 function  一起放進程式裡面, 直接呼叫 ImageResize(), 把參數傳進去即可.

 (閱讀全文)

星期二, 八月 14, 2007

Programmer 專用最佳字型 - Monaco font

昨天看到 Monaco Font 這篇文章, 然後看了附圖後, 覺得這字型真棒(看到此字型前, 我都是使用 DejaVu Sans Mono), 然後當然就找來試試囉~

剛開始不太習慣, 字的間距比較大, 但看久感覺很舒服, 值得推薦~ :)

 (閱讀全文)

星期三, 八月 01, 2007

PHP 使用 SimpleXML 遇到 Illegal offset type(型態轉換問題) 解法

PHP 的 simplexml_load_string/simplexml_load_file 很方便, 很簡單的就能把 XML parse 成 PHP Object, 然後就看要怎麼處理資料, 再處理即可~

做簡單的處理都沒什麼異常, 但是現在遇到要將 Object value 轉換成一般 PHP Array 的 key -> value 型態就遇到問題了. 不曉得是我不會用還是怎麼樣, 查不到正確該怎麼解, 所以寫起來紀錄一下.(希望有正確解法, 還請指導.. Orz)

註: PHP Version: PHP 5.2.3

 (閱讀全文)