本文主要和大家分享PHP加密URL防止採集的方法實例,希望能幫助大家到大家。
網路上有很多採集工具,他們是如何採集的。
這些網址都很有規律,都是(blog-)+ 數字 組成,採集很大程度上利用這個網址規律自動採集網頁。
如何更好的避免網站被採集?我們可以把網址中的(關鍵數字)部分加密一下。
供出加密方法,產生的加密網址短,穩定,非隨機數加密方式,對seo友善。算法自行研究。
/** * 加密数字方法 * echo idEncode(222); * @author uuleaf[<uuleaf#163.com>] 小叶 * @param int $int 要加密的数字 * @return string 加密后的字符串 */ function idEncode($int) { $str = md5($int); $sarr = str_split($str); $stai = (ord($str) + 8) % 10; if ($stai == 0) $stai = 8; $idstr = base_convert($int * $stai, 10, 32); $str1 = substr($str, 10, 2); $str2 = substr($str, 14, 2); $str3 = substr($str, 18, 2); return $str1 . $idstr . $str2 . $stai . $str3; } 解密方法 /** * 解密数字方法 * echo idDncode(""); * @author uuleaf[<uuleaf#163.com>] 小叶 * @param string $str 要解密的数字 * @return int 解密后的数字 */ function idDecode($str) { $idstr = substr(substr($str, 2), 0, -5); $ji = base_convert($idstr, 32, 10); $si = (int)substr($str, -3, -2); return floor($ji / $si); }
測驗
echo "加密前的网址:http://thinkphp.cn/blog-54.html"; echo "\n"; $encode_str = idEncode(54); echo "加密后的网址:http://thinkphp.cn/blog-{$encode_str}.html"; echo "\n"; $decode_str = idDecode($encode_str); echo "还原后的网址:http://thinkphp.cn/blog-{$decode_str}.html";
#輸出結果
相關建議:
以上是PHP加密URL防止採集的方法實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!