Category: Programming

PHP 控制 QPS (Query Per Second) 的寫法

寫個簡易的範例,如果送出 REQUEST 很頻繁,卻不想把對方打死,可以控制一下 QPS ,單位是毫秒。

Posted in Programming

WTF 系列 – PHP 的 Array Concatenate

這篇文章放在草稿好久了,今天抽空把他寫完。 — PHP 的 Array Concatenate 有兩個方法一個是用 array_merge 另一個是用運算子 + (array union operator) array_merge 可以把兩個 array 合併起來,但是行為需要注意, array_merge($a, $b) 當 array 被當作 map 使用時,他的 key 是字串或是數字處理起來結果不同。 當 key 是字串:會把 $a 附加在 $b 的最尾端。如果 $a 和 $b 有相同的 key 的話,後者會覆蓋掉前者的值。

Posted in Programming

IMGUPUP – A simple PHP image uploader

介紹一個我寫的開放原始碼專案:IMGUPUP 原本我只是想寫個 script 支援圖片上傳而已,但不小心越寫越大,於是最終就變成一個相簿了。目前功能很弱,畢竟開發目的主要是滿足合我自己需求,所以如果你也有用,而且想要新功能,歡迎在 github 的 issue 提出,當然也歡迎送 PR 過來。 我從 Gallery 2 的時代就開始用它當成我的相簿,差不多六年前升級到 Gallery 3 ,為了和 Gallery 2 向下相容,我還寫了一個外掛 (連結一) 。當時管理的照片數量差不多是五千多張。不過 Gallery 3 有幾個很討厭的問題: 1. 相片和相簿的網址是根據階層關係決定的,舉例來說:相簿的網址會像是這樣: http://host/相本A/相本B/ ,而相片的網址也繼承了這個概念,於是就更長了。 2. 檔案實際存放的路徑也是根據階層關係決定的。相簿的階層直接對到實體路徑的階層。 3. 為了 SEO 的緣故,會拿相片/相簿的標題來當網址 以上三者的設計對於一般人來說或許很親切,但對我來說非常痛苦,因為我很喜歡把相簿搬來搬去,或是重新分類。而在這個過程中,所有網址都會改變,但這不是我所希望的,因為相片網址一改,我文章裡面的連結就得跟著改,然後就… 有鑑於 Gallery 3 有以上缺點,且

Posted in Programming

簡單的 benchmark function

在 php.net 的 microtime() 範例看到的,果然好用。

Posted in Programming

系統對於時區的處理

關於時區,在跨時區的系統串接的處理上,可以參考 ISO 8601 date 裡面的 “Combined date and time representations” 和 “Time offsets from UTC” 兩個 section 。

Posted in Programming