WEB制作のための情報サイト / unazuki Library

antispambot()

基本構文と使い方(引数・実行結果)

基本構文

エンティティ化したメールアドレスを返します。メールアドレスをそのままHTMLに組み込んでページに表示するとボットに拾われて迷惑メールの対象になりますが、その対策として使えるテンプレートタグです。

antispambot($email_address,$hex_encoding);

引数

引数必須/任意引数に指定するもの
第1引数
$email_address
必須メールアドレスを文字列で指定
第2引数
$hex_encoding
任意16進数の文字参照でエンティティ化するには1を指定(trueでもOK)
初期値0 (10進数)

実行結果

戻り値(返す値):エンティティ化したメールアドレス
※表示するにはechoします。

例1.メールアドレスをエンティティ化する。

下記の例では info@example.com をエンティティ化しています。echoで表示されるメールアドレスはそのまま info@example.com ですが、レンダリング前の生のHTMLは結果例のように、エンティティ化されます。

<?php echo antispambot("info@example.com"); ?>

結果例(レンダリング前のHTML):&#105;&#110;&#102;o&#64;&#115;&#97;mp&#108;&#101;&#46;&#99;&#111;m
※引数に指定した文字列の中からランダムにエンティティ化されるので常に同じ結果ではありません。

学習者向け補足情報

【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。

【引数について】

  • 指定できる引数の数はテンプレートタグによって異なります。(引数なしもあり)
  • 引数ごとに必須 / 任意が決まっています。(必須は必ず指定、任意は指定しなければ初期値)
  • 引数名(例:$post)は仕様の便宜上の名前と考えてください。(この名前自体はテンプレートタグ実行に関係しません。各引数に何を指定するのかを理解していればOKです。)

よくある使い方

下記の例では、mailtoをつかったメールリンクをエンティティ化しています。

<?php
$email = antispambot('info@example.com');
echo '<a href="mailto:' . $email . '">' . $email . '</a>';
?>

※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。

関連するテンプレートタグ

テンプレートタグ 説明
esc_html() HTMLをエスケープし、安全な文字列として出力します。
esc_attr() 属性値をエスケープし、安全な文字列として出力します。
esc_url() URLをエスケープし、安全な文字列として出力します。