PHP 的 array_merge 會將 數值 變成 0, 1, 2..., 就算是強制轉換成字串也一樣.
分類: Programming
好文: 常用 Regular Expression 範例
寫程式常常需要檢查信用卡、日期、Email、IP、密碼... 等等.
使用 PHP 接收 Linux 中 pipe 的 輸出資料
在 Linux 常使用到 pipe(|), 要如何讓 PHP 讀取 pipe 送過來的值呢?
- ex: cat file.txt | ./read_pipe.php # 將 file.txt cat 印出, 送給 read_pipe.php 接收處理.
PHP 的 preg_replace 注意事項
PHP 的 preg_match(), preg_replace() 是蠻常用的 regex function, 但是若用變數帶入時, 要特別注意 \
等 符號.
PHP 使用 sprintf 調換變數順序
在多國語系翻譯時, 會有遇到 英文 與 中文 翻譯的字前後順序不同的問題, 此時可以使用 sprintf 來解決.
Yahoo! BBAuth 單一登入 設定 / 教學 / 問答(PHP)
Yahoo! BBAuth 是做帳號單一登入, 就是使用 Y! 的帳號, 也可以登入你的網站.
同類的有 OpenID / Yahoo! OAuth.
照理說, 以後應該都會走 OpenID 或 OAuth, 那為何要寫 BBAuth? 為何不用 OpenID 或 Yahoo! OAuth?
- OpenID: 太長了, 自己都懶得打, 放棄~
- Y! OAuth: 照理說應該要用這個, 但是遇到一堆問題:
- 第一次用遇到 Security 問題, 跳出警告視窗(那警告視窗看到就覺得死定了).
- 第二次用遇到 Y! DB unsync, 每次 Reload YDN 的 Dashboard 出來的值都不一樣(登入異常)
總之, 使用 Y! OAuth 的經驗真是很糟糕, 還是先繼續用 Y! BBAuth 吧.
註: 此篇主要是設定 + 登入的部份, 如何存取 Y! API 的部份在此篇不提.
Linux 取得機器目前 IP 的 script
目前機器所用 IP
- /sbin/ifconfig | grep Bcast | awk '{print $2}' | sed 's/addr://' # 192.168.0.1
- /sbin/ifconfig | awk -F'[ :]+' '/Bcast/{print $4}' # 感謝 pank 提供
目前機器所有 IP (PPPoE IP / 127.0.0.1 / 虛擬 IP .. 等等)
- /sbin/ifconfig | grep Mask | awk '{print $2}' | sed 's/addr://' # 192.168.0.1 / 127.0.0.1 ... 多個 IP
- /sbin/ifconfig | awk -F'[ :]+' '/Mask/{print $4}' 感謝 pank 提供
列出 PHP 預設所有內建的常數、函式
PHP 的所有 Function 列表: PHP: Manual Quick Reference
另外 PHP DateTime 全域變數列表: PHP: DateTime - Manual
由上述可以看到這些 DATE_ATOM / DATE_RSS .. 等的全域變數可以做什麼用, 要知道代表什麼值, <?php echo DATE_RSS; ?>
就可以知道.
DATE 全域變數有下述這些值:
- [DATE_ATOM] => Y-m-d\TH:i:sP
- [DATE_COOKIE] => l, d-M-y H:i:s T
- [DATE_ISO8601] => Y-m-d\TH:i:sO
- [DATE_RFC822] => D, d M y H:i:s O
- [DATE_RFC850] => l, d-M-y H:i:s T
- [DATE_RFC1036] => D, d M y H:i:s O
- [DATE_RFC1123] => D, d M Y H:i:s O
- [DATE_RFC2822] => D, d M Y H:i:s O
- [DATE_RFC3339] => Y-m-d\TH:i:sP
- [DATE_RSS] => D, d M Y H:i:s O
- [DATE_W3C] => Y-m-d\TH:i:sP
PHP 用 while、list、each 達成 foreach 的寫法
學習程式語言時, 總是學學 for, 然後再試著用 while 寫出 for 的效果 等等的一些練習.
來看看沒有 foreach 前, 要想要有 foreach 的功能要怎麼寫(用 while、list、each 來達成).
Gettext mo 轉回 po 和 PHP 讀取 mo 檔
Gettext 詳可見: 使用 gettext 來實做 PHP 多國語系支援(I18N)
- po 檔: 原始文件, 也就是平常翻譯時修改的文件檔案
- mo 檔: 程式在看的文件(binary).
但是如果 po 檔不見, 要從 mo 檔轉換回來要怎麼辦?