これがこの質問をする場所であるかどうかわかりませんが、私は決してしません。番号PHPを使用した消毒
コードから数値以外の文字をすべて削除しようとしていますが、FILTER_SANITIZE_NUMBER_INTではプラス記号とマイナス記号が使用できます。コードを追加してPHPを使用してそれらを削除するにはどうすればいいですか?
ここに私のコードです。
$a = filter_var($a,FILTER_SANITIZE_NUMBER_INT);
これがこの質問をする場所であるかどうかわかりませんが、私は決してしません。番号PHPを使用した消毒
コードから数値以外の文字をすべて削除しようとしていますが、FILTER_SANITIZE_NUMBER_INTではプラス記号とマイナス記号が使用できます。コードを追加してPHPを使用してそれらを削除するにはどうすればいいですか?
ここに私のコードです。
$a = filter_var($a,FILTER_SANITIZE_NUMBER_INT);
この場合、プラス(+)記号を削除するために結果をintにキャストするだけでよいでしょう。
$a = (int) filter_var($a,FILTER_SANITIZE_NUMBER_INT);
あなたはマイナスをドロップする必要がある場合は( - )、同様に署名を効果的数の絶対値を取得して、PHPのABS()関数を使用します。
$a = abs((int) filter_var($a,FILTER_SANITIZE_NUMBER_INT));
"123-456"は "123"を返すので、私が望む "123456"を返さないからDownvoted。 – Sasse
"123-456"はダッシュを含んでいるためintではありません。あなたは 'str_replace( ' - '、 ''、" 123-456 ")' http://php.net/manual/en/function.str-replace.phpを探しています。 – bitsoflogic
OPの質問を読まれましたか?彼は「プラスとマイナス記号」の削除を含むすべての「数字以外の文字」を削除しようとしています。 – Sasse
私は、以下の溶液を用いて行きました。大文字の「D」は「非数字」を表します。
public static function sanitize_integer($str)
{
return (int) preg_replace('/\D/', '', $str);
}
の可能性のある重複した[PHP - 文字列からすべての非数値文字を削除](http://stackoverflow.com/questions/33993461/php-remove-all-non-numeric-characters-from-a -string) – rlemon