幫 Plurk 在網頁連結 補上加入 "喜歡" 的功能

在 Plurk 看到一些內容、連結, 想要先收藏起來, 最快的方式就是點 "喜歡"(Like), 但是 Plurk 的 "喜歡" 只能在自己的河道上點, 若是透過 RSS 看, 點過去的頁面都是那句話的 網頁連結頁, 想要標註起來的話, 需要回自己的河道, 然後想辦法 拉到 & 找到 那句話, 再點選加入"喜歡"~ (話說, Plurk 的河道要拉到幾天前的話, 非常困難阿~)

有這個困擾的人似乎不只有我, 但是又不想寫個程式, 讓人輸入自己的帳號、密碼、連結, 幫他做登入 & 加入 "喜歡" 的動作 (安全性問題).

於是最好的解法就是用 JavaScript Bookmarklet 的方法來達成, 所以著手研究看看該怎麼送資料.

  • 想直接取用此 Bookmarklet 的, 可直接將此連結 Plurk Like, 拉到瀏覽器 Toolbar 即可使用.(目前只能於 Plurk 單一連結頁面使用)

閱讀全文〈幫 Plurk 在網頁連結 補上加入 "喜歡" 的功能〉

使用 Memcached 來存 PHP session

Debian Linux 的 PHP session 之前都存在 /var/lib/php5/, 某次升級後, 就轉移到 /tmp 去.

可以修改 php.ini 的 session.save_path 指回 /var/lib/php5, 只是總覺得不是好解法.

看 RAM 還夠用, 還是乾脆把 session 都存到 memcached 去好了.

閱讀全文〈使用 Memcached 來存 PHP session〉

PHP ip2long() 回傳值為負數 的 解法

PHP 的 ip2long 是將 IP 位址轉換為數值的 function.

ip2long() 轉出來的數值應該都是正整數, 但是在某些機器轉出負數, 剛開始以為是 PHP 版本問題, 後來做些測試, 確定是系統版本 32bits 和 64bits 的問題.

  • 32 bits ip2long(): -2147483648 ~ 214748364764
  • 64 bits ip2long(): 0 ~ 4294967295

閱讀全文〈PHP ip2long() 回傳值為負數 的 解法〉

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() 一樣.

閱讀全文〈PHP 將 UTF-8 的 字串 依 指定長度 切割成陣列(str_split 的 UTF-8版)〉

PHP 使用 CURL 同步抓取多個網頁

一般 CURL 抓網頁的方法, 是一頁一頁抓, 假設要抓 4頁, 所費時間各別是 5,10,7,5 秒, 那全部總合所花的時間就是 5 + 10 + 7 + 5 = 27 秒.

若能同時間去抓取多個網頁, 所花費的時間 5,10,7,5 秒, 全部總合所花的時間是 10 秒.(花費最多時間的秒數)

閱讀全文〈PHP 使用 CURL 同步抓取多個網頁〉