PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのFILTER_SANITIZE_NUMBER_INT定数とは?使い方とサンプルコードを解説

PHPのFILTER_SANITIZE_NUMBER_INT定数は、文字列から数字以外の不正な文字をすべて取り除き、整数として有効な形式にサニタイズ(無害化)するためのフィルター定数です。

このフィルターを適用すると、半角数字とプラス記号「+」、マイナス記号「-」以外のすべての文字が削除されます。ユーザー入力などから数値部分だけを安全に抽出したい場合に便利です。

使い方

FILTER_SANITIZE_NUMBER_INTは、filter_var()関数と組み合わせて使用します。第1引数に対象の変数を、第2引数にこの定数を指定します。

戻り値

フィルタリングが成功した場合は、不正な文字が除去された文字列が返されます。フィルタリングに失敗した場合はfalseが返されます。

サンプルコード

<?php
   $var = "4-5+9p";
   var_dump(filter_var($var, FILTER_SANITIZE_NUMBER_INT));
?>

実行結果

上記のコードを実行すると、次のように出力されます。

string(5) "4-5+9"

元の文字列には末尾に英字の「p」が含まれていますが、フィルター適用後には数字と符号のみが残り、「4-5+9」という文字列になっていることがわかります。

注意点

このフィルターは符号や数字の並び順を検証しないため、「--5」のような不正な形式でもそのまま通過します。厳密な数値検証を行いたい場合は、FILTER_VALIDATE_INTなどのバリデーション用フィルターと併用することをおすすめします。

  1. PHPのFILTER_VALIDATE_EMAIL定数とは?メールアドレスの妥当性を検証する方法

    概要FILTER_VALIDATE_EMAILは、PHPのfilter拡張機能で提供されている定数の一つで、指定された値が有効なメールアドレスの形式に合致しているかどうかを検証するために使用します。この定数は単体では動作せず、filter_var()関数と組み合わせて利用するのが一般的です。戻り値FILTER_VALIDATE_EMAIL自体はフィルターIDを表す定数であるため、それ自身は何も値を返しません。実際の検証結果は、この定数を第2引数に渡したfilter_var()関数が返します。検証に成功した場合はメールアドレスの値そのものが返され、失敗した場合はfalseが返されます。使用例以下

  2. PHPのFILTER_VALIDATE_BOOLEAN定数とは?使い方と戻り値をわかりやすく解説

    PHPには、外部からの入力値を安全に検証するためのフィルター関数が多数用意されています。その中でもFILTER_VALIDATE_BOOLEANは、渡された値をブール値(真偽値)として評価するための定数です。filter_var()関数と組み合わせて使用することで、文字列が「真」を表す値なのか「偽」を表す値なのかを簡単に判定できます。 基本的な使い方 FILTER_VALIDATE_BOOLEANは、filter_var()関数の第2引数に指定して使用します。 <?php $var = on; var_dump(filter_var($var, FILTER_VALID