英数字も数値文字参照

2009/07/19 | PHPの基本

以前、数値文字参照の文字列を作成する方法について記事を書いた。mb_convert_encodingで変換後のエンコーディングにHTML-ENTITIESを指定すれば、数値文字参照に変換することができた。でも、これ、英数字は変換してくれない。

実際の効果のほどはわからないけれどメールアドレスを数値文字参照を使って表現すれば、スパムでもっていかれる確率が少し下がるので、メールアドレスを変換するための関数を書いた。それのメモ。

function str2entities($str){
$value=”;
for($i=0;$i<strlen($str);$i++){
$value.=’&#’.ord(substr($str,$i,1)).';';
}
return $value;
}

引数に変換したいメールアドレスを与えると、数値文字参照で構成されたメールアドレスが返される。マルチバイトでも何でもこいな変換関数を書くのは、mb関数を使うなり適宜工夫すればできそう(今のところ必要ない)。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net