<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/filter.constants.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'filter.constants.validation.php',
    1 => '検証フィルタ',
    2 => '検証フィルタ',
  ),
  'up' => 
  array (
    0 => 'filter.constants.php',
    1 => '定義済み定数',
  ),
  'prev' => 
  array (
    0 => 'filter.constants.flags.sanitization.php',
    1 => '除去フィルタのフラグ',
  ),
  'next' => 
  array (
    0 => 'filter.constants.sanitization.php',
    1 => '除去フィルタ',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/filter/constants.validation.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="filter.constants.validation" class="section">
 <h2 class="title">検証フィルタ</h2>
 <p class="simpara">
以下の定数が定義されています。
この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、
実行時に動的にロードされている場合のみ使用可能です。
</p>
 <dl>
  
   <dt id="constant.filter-validate-bool">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-bool">FILTER_VALIDATE_BOOL</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <code class="literal">&quot;1&quot;</code>,
     2進数、8進数、16進数記法の <code class="literal">1</code>,
     科学的記法を含む <code class="literal">1.0</code>,
     <code class="literal">&quot;true&quot;</code>, <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>,
     <code class="literal">&quot;on&quot;</code>,
     <code class="literal">&quot;yes&quot;</code>
     に対して、<strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> を返します。
    </p>
    <p class="simpara">
     <code class="literal">&quot;0&quot;</code>,
     2進数、8進数、16進数記法の <code class="literal">0</code>,
     科学的記法を含む <code class="literal">0.0</code>,
     <code class="literal">&quot;false&quot;</code>, <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>,
     <code class="literal">&quot;off&quot;</code>,
     <code class="literal">&quot;no&quot;</code>,
     <code class="literal">&quot;&quot;</code> に対して、<strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返します。
    </p>
    <p class="simpara">
     文字列の値は、大文字小文字の区別をせず比較されます。
     このフィルタが boolean 以外を返すかどうかは、
     <strong><code><a href="filter.constants.flags.generic.php#constant.filter-null-on-failure">FILTER_NULL_ON_FAILURE</a></code></strong> の値次第です。
     この値が設定されていると、<strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> を返します。
     そうでない場合、<strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返します。
    </p>
    <dl id="filter.constants.validation.bool.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
    <p class="simpara">
     PHP 8.0.0 以降で利用可能です。
    </p>
   </dd>
  

  
   <dt id="constant.filter-validate-boolean">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-boolean">FILTER_VALIDATE_BOOLEAN</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     のエイリアス <strong><code><a href="filter.constants.validation.php#constant.filter-validate-bool">FILTER_VALIDATE_BOOL</a></code></strong>。
     このエイリアスは、正規化された名前が実装される前の
     PHP 8.0.0 より前のバージョンで利用可能でした。
    </p>
   </dd>
  

  
   <dt id="constant.filter-validate-int">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-int">FILTER_VALIDATE_INT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     値が整数値かどうかを検証します。
     検証が成功すると、<span class="type"><a href="language.types.integer.php" class="type int">int</a></span> 型に変換されます。
    </p>

    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <p class="simpara">
      文字列の値は、検証する前に <span class="function"><a href="function.trim.php" class="function">trim()</a></span> を実行します。
     </p>
    </p></blockquote>

    <dl id="filter.constants.validation.int.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
     
      <dt><code class="literal">min_range</code></dt>
      <dd>
       <p class="simpara">
        指定した値と等しい、
        またはそれより大きな場合にのみ値が正しいとみなされます。
       </p>
      </dd>
     
     
      <dt><code class="literal">max_range</code></dt>
      <dd>
       <p class="simpara">
        指定した値と等しい、
        またはそれより小さな場合にのみ値が正しいとみなされます。
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.int.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt id="constant.filter-flag-allow-octal">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-allow-octal">FILTER_FLAG_ALLOW_OCTAL</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        
        8 進表記 (<code class="literal">0[0-7]+</code>) を許可します。
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-allow-hex">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-allow-hex">FILTER_FLAG_ALLOW_HEX</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        16 進表記 (<code class="literal">0x[0-9a-fA-F]+</code>) を許可します。
       </p>
      </dd>
     
    </dl>
   </dd>
  

  
   <dt id="constant.filter-validate-float">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-float">FILTER_VALIDATE_FLOAT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     値が浮動小数点数かどうかを検証します。
     検証が成功すると、<span class="type"><a href="language.types.float.php" class="type float">float</a></span> 型に変換されます。
    </p>

    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <p class="simpara">
      文字列の値は、検証する前に <span class="function"><a href="function.trim.php" class="function">trim()</a></span> を実行します。
     </p>
    </p></blockquote>

    <dl id="filter.constants.validation.float.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
     
      <dt><code class="literal">decimal</code></dt>
      <dd>
       <p class="simpara">
        
       </p>
      </dd>
     
     
      <dt><code class="literal">min_range</code></dt>
      <dd>
       <p class="simpara">
        指定した値と等しい、
        またはそれより大きな場合にのみ値が正しいとみなされます。
        PHP 7.4.0 以降で利用可能です。
       </p>
      </dd>
     
     
      <dt><code class="literal">max_range</code></dt>
      <dd>
       <p class="simpara">
        指定した値と等しい、
        またはそれより小さな場合にのみ値が正しいとみなされます。
        PHP 7.4.0 以降で利用可能です。
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.float.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt>
       <strong><code><a href="filter.constants.sanitization.php#constant.filter-flag-allow-thousand">FILTER_FLAG_ALLOW_THOUSAND</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        桁区切り文字 (<code class="literal">,</code>) を許可します。
        これは通常、1000ごとに桁を区切るのに使われます。
       </p>
      </dd>
     
    </dl>
   </dd>
  
  
   <dt id="constant.filter-validate-regexp">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-regexp">FILTER_VALIDATE_REGEXP</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <code class="literal">regexp</code> オプションによって、
     指定した正規表現にマッチするかを検証します。
    </p>

    <dl id="filter.constants.validation.regex.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
     
      <dt><code class="literal">regexp</code></dt>
      <dd>
       <p class="simpara">
        <a href="book.pcre.php" class="link">PCRE</a> 互換の正規表現
       </p>
      </dd>
     
    </dl>
   </dd>
  

  
   <dt id="constant.filter-validate-url">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-url">FILTER_VALIDATE_URL</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <abbr title="Uniform Resource Locator">URL</abbr> が
     <a href="https://datatracker.ietf.org/doc/html/rfc2396" class="link external">&raquo;&nbsp;RFC 2396</a>
     に照らして正しいかを検証します。
    </p>
    <dl id="filter.constants.validation.url.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.url.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt id="constant.filter-flag-scheme-required">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-scheme-required">FILTER_FLAG_SCHEME_REQUIRED</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        <abbr title="Uniform Resource Locator">URL</abbr> に scheme 部分を必須とします。
       </p>
       <div class="warning"><strong class="warning">警告</strong>
        <p class="simpara">
         PHP 7.3.0 以降は<em>非推奨</em>になり、
         PHP 8.0.0 で<em>削除</em>されました。
         <strong><code><a href="filter.constants.validation.php#constant.filter-validate-url">FILTER_VALIDATE_URL</a></code></strong>
         フィルタが常にこの処理を含んでいたからです。
        </p>
       </div>
      </dd>
     
     
      <dt id="constant.filter-flag-host-required">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-host-required">FILTER_FLAG_HOST_REQUIRED</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        <abbr title="Uniform Resource Locator">URL</abbr> に host 部分を必須とします。
       </p>
       <div class="warning"><strong class="warning">警告</strong>
        <p class="simpara">
         PHP 7.3.0 以降は<em>非推奨</em>になり、
         PHP 8.0.0 で<em>削除</em>されました。
         ほとんどのスキームでは、<strong><code><a href="filter.constants.validation.php#constant.filter-validate-url">FILTER_VALIDATE_URL</a></code></strong>
         フィルタが常にこの処理を含んでいたからです。
        </p>
       </div>
      </dd>
     
     
      <dt id="constant.filter-flag-path-required">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-path-required">FILTER_FLAG_PATH_REQUIRED</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        <abbr title="Uniform Resource Locator">URL</abbr> に path 部分を必須とします。
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-query-required">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-query-required">FILTER_FLAG_QUERY_REQUIRED</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        <abbr title="Uniform Resource Locator">URL</abbr> に query 部分を必須とします。
       </p>
      </dd>
     
    </dl>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="simpara">
      正しい <abbr title="Uniform Resource Locator">URL</abbr> であっても、
      <abbr title="Hypertext Transfer Protocol">HTTP</abbr> プロトコル (<code class="literal">http://</code>)
      を指定しない場合があります。
      よって、<abbr title="Uniform Resource Locator">URL</abbr>
      が期待通りのプロトコルを使っているかについては、
      追加の検証が必要です。
      たとえば <code class="literal">ssh://</code> や <code class="literal">mailto:</code>
      の検証がその例です。
     </p>
    </div>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="simpara">
      このフィルタは
      <abbr title="American Standard Code for Information Interchange">ASCII</abbr> で構成された
      <abbr title="Uniform Resource Locator">URL</abbr> に対してのみ動作します。
      つまり、Internationalized Domain Names (IDN)
      は常に拒否されるということです。
     </p>
    </div>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="simpara">
      このフィルタの検証は非常に緩やかです。
      <code class="literal">http://</code> と <code class="literal">https://</code>
      以外のスキームでは、ホスト部の内容は一切検証されずに受け入れられます。
      ただし、URL のスキームが
      <code class="literal">mailto:</code>、<code class="literal">news:</code>、<code class="literal">file:</code>
      のいずれかである場合を除き、ホスト部は必須です。
      スキーム自体も検証されず、既知の URL スキームに該当しないものや、
      PHP では別の意味を持つもの (<a href="book.phar.php" class="link">phar://</a> など)
      でも受け入れられることがあります。
      また、このフィルタは自ホストを指す<a href="https://en.wikipedia.org/wiki/Loopback" class="link external">&raquo;&nbsp;ループバック</a>アドレスも受け入れます。
     </p>
     <div class="informalexample">
      <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'javascript://x%0aalert(1)'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'javascript://?demo'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'news:?demo'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'phar://demo'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'123://demo'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'-://demo'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://127.0.0.1'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">'gopher://127.0.0.1'</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_URL</span><span style="color: #007700">));
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
      </div>

      <p class="simpara">上の例の出力は以下となります。</p>
      <div class="example-contents screen">
<div class="cdata"><pre>
string(25) &quot;javascript://x%0aalert(1)&quot;
bool(false)
string(10) &quot;news:?demo&quot;
string(11) &quot;phar://demo&quot;
string(10) &quot;123://demo&quot;
string(8) &quot;-://demo&quot;
string(16) &quot;http://127.0.0.1&quot;
string(18) &quot;gopher://127.0.0.1&quot;
</pre></div>
      </div>
     </div>
    </div>
   </dd>
  
  
   <dt id="constant.filter-validate-domain">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-domain">FILTER_VALIDATE_DOMAIN</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     ドメイン名が
     <a href="https://datatracker.ietf.org/doc/html/rfc952" class="link external">&raquo;&nbsp;RFC 952</a>,
     <a href="https://datatracker.ietf.org/doc/html/rfc1034" class="link external">&raquo;&nbsp;RFC 1034</a>,
     <a href="https://datatracker.ietf.org/doc/html/rfc1035" class="link external">&raquo;&nbsp;RFC 1035</a>,
     <a href="https://datatracker.ietf.org/doc/html/rfc1034" class="link external">&raquo;&nbsp;RFC 1123</a>,
     <a href="https://datatracker.ietf.org/doc/html/rfc1034" class="link external">&raquo;&nbsp;RFC 2732</a>,
     <a href="https://datatracker.ietf.org/doc/html/rfc2181" class="link external">&raquo;&nbsp;RFC 2181</a>
     に照らして正しいかを検証します。
    </p>
    <dl id="filter.constants.validation.domain.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.domain.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt id="constant.filter-flag-hostname">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-hostname">FILTER_FLAG_HOSTNAME</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        アルファベットと数字から始まり、
        アルファベットと数字およびハイフンだけを含むホスト名を必須とします。
       </p>
      </dd>
     
    </dl>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="simpara">
      このフィルタの検証は非常に緩やかです。
      <a href="https://datatracker.ietf.org/doc/html/rfc2181" class="link external">&raquo;&nbsp;RFC 2181</a> の規定では、
      正しいドメイン名とは、長さが最大 253 文字
      (末尾の区切り文字 <code class="literal">.</code> を含めると 254 文字) で、
      <code class="literal">.</code> で区切られた各ラベルが 63 文字以下の文字列のことです。
      ドメイン名がホスト名としても正しいかを
      <strong><code><a href="filter.constants.validation.php#constant.filter-flag-hostname">FILTER_FLAG_HOSTNAME</a></code></strong> で検証しない限り、
      このフィルタは空白文字、メタ文字、制御文字、
      さらには NUL バイトまで受け入れます。
     </p>
     <div class="informalexample">
      <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">"!@#$%^&amp;*(){}[]/?=+\|`~\"'&lt;&gt;,"</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_DOMAIN</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">"null byte: &gt;\0&lt;"</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_DOMAIN</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">filter_var</span><span style="color: #007700">(</span><span style="color: #DD0000">"space:&gt; &lt;, tab:&gt;\t&lt;, newline: &gt;\n&lt;, carriage return&gt;\r&lt;"</span><span style="color: #007700">, </span><span style="color: #0000BB">FILTER_VALIDATE_DOMAIN</span><span style="color: #007700">));
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
      </div>

      <p class="simpara">上の例の出力は以下となります。</p>
      <div class="example-contents screen">
<div class="cdata"><pre>
string(27) &quot;!@#$%^&amp;*(){}[]/?=+\|`~&quot;&#039;&lt;&gt;,&quot;
string(14) &quot;null byte: &gt;&lt;&quot;
string(52) &quot;space:&gt; &lt;, tab:&gt;	&lt;, newline: &gt;
&lt;, carriage return&gt;
&lt;&quot;
</pre></div>
      </div>
     </div>
    </div>
   </dd>
  
  
   <dt id="constant.filter-validate-email">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-email">FILTER_VALIDATE_EMAIL</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     値が &quot;正しい&quot; メールアドレスかどうかを検証します。
    </p>

    <p class="simpara">
     <a href="https://datatracker.ietf.org/doc/html/rfc822" class="link external">&raquo;&nbsp;RFC 822</a>
     の <code class="literal">addr-spec</code> 構文に照らして検証は行われます。
     しかし、コメントやホワイトスペースのフォールディング、
     ドットなしのドメイン名はサポートされていません。
     よってこれらは拒否されます。
    </p>

    <dl id="filter.constants.validation.email.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.email.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt id="constant.filter-flag-email-unicode">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-email-unicode">FILTER_FLAG_EMAIL_UNICODE</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        local の部分に Unicode を許可します。
        PHP 7.1.0 以降で利用可能です。
       </p>
      </dd>
     
    </dl>

    <div class="warning"><strong class="warning">警告</strong>
     <p class="simpara">
      メールアドレスの検証は複雑なので、
      メールアドレスが正しく、かつ存在するかを確認する唯一の方法は、
      そのアドレスにメールを送信することです。
     </p>
    </div>
   </dd>
  

  
   <dt id="constant.filter-validate-ip">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-ip">FILTER_VALIDATE_IP</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     値が IPアドレス かどうかを検証します。
    </p>
    <dl id="filter.constants.validation.ip.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
    <dl id="filter.constants.validation.ip.flags">
     <strong class="title">オプションのフラグ</strong>
     
      <dt id="constant.filter-flag-ipv4">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-ipv4">FILTER_FLAG_IPV4</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        IPv4 アドレスを許可します。
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-ipv6">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-ipv6">FILTER_FLAG_IPV6</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        IPv6 アドレスを許可します。
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-no-res-range">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-no-res-range">FILTER_FLAG_NO_RES_RANGE</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        予約済みアドレスを拒否します。
       </p>
       <p class="simpara">
        <a href="https://datatracker.ietf.org/doc/html/rfc6890" class="link external">&raquo;&nbsp;RFC 6890</a>
        で <code class="literal">Reserved-By-Protocol</code>
        としてマークされているアドレスが該当します。
       </p>
       <p class="para">
        IPv4 については、以下の範囲が該当します:
        <span class="simplelist"><code class="literal">0.0.0.0/8</code>, <code class="literal">169.254.0.0/16</code>, <code class="literal">127.0.0.0/8</code>, <code class="literal">240.0.0.0/4</code></span>
       </p>
       <p class="para">
        IPv6 については、以下の範囲が該当します:
        <span class="simplelist"><code class="literal">::1/128</code>, <code class="literal">::/128</code>, <code class="literal">::FFFF:0:0/96</code>, <code class="literal">FE80::/10</code></span>
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-no-priv-range">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-no-priv-range">FILTER_FLAG_NO_PRIV_RANGE</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        プライベートアドレスを拒否します。
       </p>
       <p class="para">
        IPv4 については、以下の範囲が該当します:
        <span class="simplelist"><code class="literal">10.0.0.0/8</code>, <code class="literal">172.16.0.0/12</code>, <code class="literal">192.168.0.0/16</code></span>.
       </p>
       <p class="simpara">
        IPv6 については、
        <code class="literal">FD</code> や <code class="literal">FC</code>
        から始まるものが該当します。
       </p>
      </dd>
     
     
      <dt id="constant.filter-flag-global-range">
       <strong><code><a href="filter.constants.validation.php#constant.filter-flag-global-range">FILTER_FLAG_GLOBAL_RANGE</a></code></strong>
       (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
      </dt>
      <dd>
       <p class="simpara">
        グローバルアドレスのみを許可します。
        <a href="https://datatracker.ietf.org/doc/html/rfc6890" class="link external">&raquo;&nbsp;RFC 6890</a> で、
        <code class="literal">Global</code> 属性が <code class="literal">True</code>
        になっているものが該当します。
        PHP 8.2.0 以降で利用可能です。
       </p>
      </dd>
     
    </dl>
   </dd>
  

  
   <dt id="constant.filter-validate-mac">
    <strong><code><a href="filter.constants.validation.php#constant.filter-validate-mac">FILTER_VALIDATE_MAC</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     値が MACアドレス かどうかを検証します。
    </p>

    <dl id="filter.constants.validation.mac.options">
     <strong class="title">利用可能なオプション</strong>
     
      <dt><code class="literal">default</code></dt>
      <dd>
       <p class="simpara">
        フィルタが失敗した場合に返す値
       </p>
      </dd>
     
    </dl>
   </dd>
  
 </dl>
</div><?php manual_footer($setup); ?>