这样可以减少约四分之一(15字节的字符比拟4字节的整数)的存储空间, 更易于打算该 IP 地址的有效范围, 而且还加速了搜索和排序的效率。
利用bigint(20)字段类型存储数据
ip2long ( string $ip_address ) : int

long2ip ( int $proper_address ) : string
<?php $ip = gethostbyname('www.xxxxxx.com'); //获取ip地址 $long = ip2long($ip); if ($long == -1 || $long === FALSE) { echo 'Invalid IP, please try again'; } else { echo $ip . "\n"; // 192.0.34.166 echo $long . "\n"; // 3221234342 (-1073732954 on 32-bit systems, due to integer overflow) printf("%u\n", ip2long($ip)); // 3221234342 }?>
存储一个大字符串到数据库之前, 利用 gzcompress() 或 gzuncompress() 进行压缩/解压。
此内建函数利用 gzip 算法, 其明文压缩率可以达到 90%。险些每次我用 PHP 读写一个 BLOB 字段的时候都会用到它们(除须要全文索引时)。
/ 判断字符串是否base64编码/function func_is_base64($str){ return $str == base64_encode(base64_decode($str)) ? true : false;}/ 压缩内容/function func_gzcompress($str, $level = 9){ if (!func_is_base64($str)) { return base64_encode(gzcompress($str, $level)); } return $str;}/ 解压内容/function func_gzuncompress($str){ if (func_is_base64($str)) { return gzuncompress(base64_decode($str)); } return $str;}