網絡上有很多所謂「爬網機器人」(spam bot),專門收集網頁中的各種資訊,其中一種它們最喜愛的東西就是電郵地址 (email address),因為這些地址可以儲存起來,日後用來發放「濫發電郵」(spam),或者賣給提供這些服務的公司。其實我們可以把電郵地址進行「HTML 編碼」(HTML encoding),避免電郵地址被這些討厭的機器人收集,但對真人用戶沒有絲毫影響。
Paul Underwood 提供了一個只有八行的 PHP 函式,它使用 PHP 的 ord() 函式把電郵地址中每一個字符轉變為對應的 ASCII 編碼:
1
2
3
4
5
6
7
8
9
10
11
| /**
* Encode an email address to display on your website
*/
function encode_email_address( $email ) {
$output = '';
for ($i = 0; $i < strlen($email); $i++)
{
$output .= '&#'.ord($email[$i]).';';
}
return $output;
}
|
只要把電郵地址送給這個函式,它便會送回一個 HTML 編碼後的電郵地址:
1
2
| $encodedEmail = encode_email_address( '[email protected]' );
printf('<a href="mailto:%s">%s</a>', $encodedEmail, $encodedEmail);
|