星期四, 元月 21, 2010
PHP 將 UTF-8 的 字串 依 指定長度 切割成陣列(str_split 的 UTF-8版)
PHP 的 str_split() 的功能、使用方式 如下:
<?php
$str = 'Hello';
print_r(str_split($str)); // array('H', 'e', 'l', 'l', 'o')
print_r(str_split($str, 3)); // array('Hel', 'lo')
?>
str_split() 可以將 字串 依 需要的長度 做分割, 但是對 UTF-8 的中文, 就無法切依需要的長度來做切割, 要自己另外處理.
註: 下述程式 使用方法 都跟 str_split() 一樣.
(閱讀全文)星期五, 十二月 25, 2009
星期二, 十月 27, 2009
PHP 使用 SimpleXML 來解析 XML 內容、屬性
PHP 可以使用 simplexml_load_string、simplexml_load_file 來解析 XML, 以取得內容.
(閱讀全文)星期二, 十月 20, 2009
星期三, 十月 07, 2009
PHP 使用 CURL 同步抓取多個網頁
一般 CURL 抓網頁的方法, 是一頁一頁抓, 假設要抓 4頁, 所費時間各別是 5,10,7,5 秒, 那全部總合所花的時間就是 5 + 10 + 7 + 5 = 27 秒.
若能同時間去抓取多個網頁, 所花費的時間 5,10,7,5 秒, 全部總合所花的時間是 10 秒.(花費最多時間的秒數)
(閱讀全文)星期二, 十月 06, 2009
Crontab 的 sed 出現 "y 命令的字串長度不同" 解法
於 Debian Linux 的 Bash Shell 中, 使用下述命令, 可以正常執行, 並得到正確結果~ (過濾特殊符號, 全形 轉 半形, 大寫轉小寫 等.)
(閱讀全文)星期四, 十月 01, 2009
星期一, 九月 28, 2009
PHP 的 array_slice 保留 key 的值
PHP 使用 array_slice 取得某區間的 array 值, 但是 key 的值如果是數字, 則會被修改成 0, 1... 等.
(閱讀全文)星期五, 九月 25, 2009
星期四, 九月 24, 2009
星期二, 九月 22, 2009
使用 PHP 接收 Linux 中 pipe 的 輸出資料
在 Linux 常使用到 pipe(|), 要如何讓 PHP 讀取 pipe 送過來的值呢?
- ex: cat file.txt | ./read_pipe.php # 將 file.txt cat 印出, 送給 read_pipe.php 接收處理.
星期一, 八月 24, 2009
PHP 的 preg_replace 注意事項
PHP 的 preg_match(), preg_replace() 是蠻常用的 regex function, 但是若用變數帶入時, 要特別注意 \
等 符號.
星期二, 八月 11, 2009
星期一, 七月 27, 2009
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 的部份在此篇不提.
(閱讀全文)星期四, 四月 23, 2009
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 提供



