2011年1月28日 星期五

php自動打上svn版號

好吧,感覺又是一篇很聳動的標題,其實只是一些小應用,程式在出版的時候總是喜歡給個版號方便做區別,大部分會採用1.0.xx之類的寫法,最前面的1是程式架構有大變動的時候增加,0大概是有小改版時增加,而xx通常都會是svn的版號,因為這可能是最小幅度的更動,svn有自動把某個關鍵字取代為特定字串的功能,例如:更新日期、版號等。今天要交的就是利用svn自動打版號功能,讓php產生出漂亮的版號。

解決IE上CSS不執行的問題

話說IE上CSS常出問題已經不是新聞了,今天來分享一個bug給大家知道

我的code非常簡單,讓大家看一下

2011年1月27日 星期四

計算php運算時間ms等級

想要計算一個php頁面運算到底要多久可以在程式一開始時呼叫time function,運算結束後再呼叫一次,計算2次的時間差,不過time的等級只到秒,如果算的東西很少,可能得到的結果為0秒


下面程式可以計算頁面運算速度到ms等級

2011年1月19日 星期三

免架svn server的svn server

有在寫程式的人一定會用版本控制軟體來控制自己的程式碼,如果沒有,那代表你不會寫程式。

版本控制軟體很多,但最常用的應該就是subversion這一套,或者是TortoiseSVN,不過TortoiseSVN核心也是subversion。

但是如果開發者有不只一台電腦,或者是多人共同開發,需要在不同電腦維護同一份code的話,就需要一台svn server來同步所有電腦的code,網路上雖然有人提供免費的svn server,不過都是要$,不然就是要求open source (google code),當然你也可以自己架設svn server,不過缺點就是你要有一台server,而且你還要搞清楚怎麼架設svn server

PHP Fatal error: Out of memory 解決方式!!

標題好像下的很聳動 XD

今天在聊天的時候遇到有人跟我聊到他的程式會跑出Out of memory的狀況,明明記憶體已經給很大了,還是會這樣。

我之前也常遇到這個狀況,後來發現是轉換文字編碼的function作怪,只要有用到iconv, mb_xxx,這類的文字編碼function就要小心了,因為這類function非常吃記憶體,我之前估算記憶體用量約為被轉換資料的10倍左右,也就是如果你轉1m的資料,他要跟你要10m的記憶體,如果轉10m他就要100m的記憶體,一般人開給apache的記憶體用量通常不會這麼大,這時就會出錯拉~~~

PHP CLI模式下變數取得方式

什麼是CLI,全名是Command Line Interface,再不懂請自己google。

php不知道多少後開始支援這個,那也不是重點,反正這篇要教的是如何在CLI模式下拿到變數,答案就是使用$argv變數。

在下command line的時候如果是這樣下的
php test.php aa bb cc

2011年1月12日 星期三

在php中使用root權限執行command line指令

php提供了3個function 分別是 system, exec, passthru讓我們可以直接對系統下command指令,這3個function有什麼差別請自己google。

通常php在執行command line指令的時候是取決於apache的權限,所以理論上只要提高apache的權限,就可以了,不過這只是理論上= =",實作的時候不知道為什麼,還是會有權限不足的狀況,明明可以讀寫檔案了,但是要執行某個程式去控制這些檔案的時候還是會出錯,google了很久,找到3種解法。

2011年1月5日 星期三

php function 隱藏參數寫法

我也不知道這東西正式名稱叫什麼XD
反正就是讓你寫的function可以不必每次帶一堆用不到的參數
正常的function寫法是這樣
function test($a,$b,$c){
//do something
}

2011年1月4日 星期二

回顧2009...

為什麼現在在寫回顧2009...
因為前陣子寫了回顧2010,發現其實我2009過的比較精彩 XD

.reg檔的寫法

最近再弄某個迷之物,要動到reg檔,每次手動修改很麻煩,所以就想說寫個.reg檔來幫我搞定

google了一下.reg檔的寫法

1.第一行要為
Windows Registry Editor Version 5.00
2.第二行開始為reg檔案內容
路徑用[ ] 圈起來,例如
[HKEY_CURRENT_USER\Software]
3.如果要刪除某個機碼資料夾,再[後面加個-即可,例如
[-HKEY_CURRENT_USER\Software\Test]
4.刪除某個值,要先輸入路徑,然後給值一個-即可,例如

[HKEY_CURRENT_USER\Software\Test]
"TestValue"=-

2011年1月2日 星期日

解決mysql出現Got a packet bigger than 'max_allowed_packet' bytes錯誤的問題

今天在做資料庫還原的時候出現了這個錯誤
ERROR 1153 Got a packet bigger than 'max_allowed_packet' bytes


google了一下之後發現是因為mysql允許的單次最大輸入容量有上限,到mysql裡面修改max_allowed_packet=XXX這個值,把它改大一點就好摟~~~