ユニークな関数を見つけたのでメモ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function encode_email( $email , $linkText , $attrs = '' ) { // remplazar aroba y puntos $email = str_replace ( '@' , '@' , $email ); $email = str_replace ( '.' , '.' , $email ); $linkText = str_replace ( '@' , '@' , $linkText ); $linkText = str_replace ( '.' , '.' , $linkText ); $part1 = '<a href="ma' ; $part2 = 'ilto:' ; $part3 = '" ' . $attrs . ' >' ; $part4 = '</a>' ; $encoded = '<script type="text/javascript">' ; $encoded .= "document.write('$part1');" ; $encoded .= "document.write('$part2');" ; $encoded .= "document.write('$email');" ; $encoded .= "document.write('$part3');" ; $encoded .= "document.write('$linkText');" ; $encoded .= "document.write('$part4');" ; $encoded .= '</script>' ; return $encoded ; } |
下記のように使う。
1 2 3 4 | $email = 'test@example.com' ; $link = 'メールはこちら。' ; $attrs = 'class = "test"' ; echo encode_email( $email , $link , $attrs ); |
すると下記HTMLが生成される。
1 | < script type = "text/javascript" >document.write('< a href = "ma');document.write('ilto:');document.write('test@example.com');document.write('" class = "test" >');document.write('メールはこちら。');document.write('</ a >');</ script > |
結果下記コードがブラウザに出力される。
1 | < a href = "mailto:test@example.com" class = "test" >メールはこちら。</ a > |
面白いね。