Caution: ctype_alnum() will return false on integers.
<?php
var_dump(ctype_alnum('3')); // true
var_dump(ctype_alnum(3)); // false
?>
See http://bugs.php.net/bug.php?id=42007 .
ctype_alnum
(PHP 4 >= 4.0.4, PHP 5)
ctype_alnum — 英数字かどうかを調べる
説明
bool ctype_alnum ( string $text )与えられた文字列 text のすべての文字が英字または 数字であるかどうかを調べます。標準の C ロケールの場合、 文字は [A-Za-z] で、この関数は preg_match('/^[a-z0-9]+$/iD', $text) と等価です。
パラメータ
- text
調べる文字列。
返り値
text のすべての文字が英字または数字だった場合に TRUE 、そうでない場合に FALSE を返します。
例
例 407. A ctype_alnum() の例 (デフォルトのロケールを使用)
<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
if (ctype_alnum($testcase)) {
echo "The string $testcase consists of all letters or digits.\n";
} else {
echo "The string $testcase does not consist of all letters or digits.\n";
}
}
?>
上の例の出力は以下となります。
The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consist of all letters or digits.
参考
| ctype_alpha() |
| ctype_digit() |
| setlocale() |
ctype_alnum
Sinured
23-Jul-2007 02:13
23-Jul-2007 02:13
raj
10-Jul-2007 08:54
10-Jul-2007 08:54
When checking strings with multiple words for non alphanumeric characters ctype_alnum would consider space as non alphanumeric character as well.
So to check a string with multiple words for non alphanumeric characters use str_replace
foreach ($imported_queries as $check_aplhanum) {
$check_aplhanum = str_replace (" ", "", $check_aplhanum);
if (!(ctype_alnum($check_aplhanum))) {
echo "Query string contains alphanumeric characters";
}
}