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 同步抓取多個網頁〉