PHP 8.0.24 Released!

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alnumSınama, abecesayısal karakterler için yapılır

Açıklama

ctype_alnum(mixed $metin): bool

Belirtilen metin içindeki karakterlerin hepsi geçerli yerele göre birer harf veya rakam ise true döner.

Değiştirgeler

metin

Sınanacak dizge.

Bilginize:

-128 ile 255 (dahil) arasında bir tamsayı belirtilmişse bu, tek bir karakterin ASCII değeri olarak yorumlanır (negatif değerlere 256 eklenerek genişletimiş ASCII karakterlerin kullanımı sağlanmıştır). Bu aralığın dışındaki tüm tamsayılar, sayının rakamlarını oluşturan bir dizge olarak yorumlanır.

Uyarı

PHP 8.1.0 itibariyle, dizge olmayan değiştirge aktarımı önerilmemektedir. Gelecek sürümlerde, değiştirge bir ASCII karakter kodu olarak değil bir dizge olarak yorumlanacaktır. Amaçlanan davranışa bağlı olarak, değiştirge ya string türe dönüştürülmeli ya da doğrudan chr() çağrısı yapılmalıdır.

Dönen Değerler

Belirtilen metin içindeki karakterlerin hepsi geçerli yerele göre birer harf veya rakam ise true, değilse false döner. Boş dizge ile çağrıldığında sonuç daima false olur.

Örnekler

Örnek 1 - ctype_alnum() örneği (öntanımlı yerel kullanılarak)

<?php
$dizgeler 
= array('AbCd1zyZ9''foo!#$bar');
foreach (
$dizgeler as $dizge) {
    if (
ctype_alnum($dizge)) {
        echo 
"$dizge tamamen harflerden ve/veya rakamlardan oluşuyor.\n";
    } else {
        echo 
"$dizge tamamen harflerden ve/veya rakamlardan oluşmuyor.\n";
    }
}
?>

Yukarıdaki örneğin çıktısı:

AbCd1zyZ9 tamamen harflerden ve/veya rakamlardan oluşuyor.
foo!#$bar tamamen harflerden ve/veya rakamlardan oluşmuyor.

Ayrıca Bakınız

add a note

User Contributed Notes 4 notes

up
95
thinice at gmail dot com
13 years ago
ctype_alnum() is a godsend for quick and easy username/data filtering when used in conjunction with str_replace().

Let's say your usernames have dash(-) and underscore(_) allowable and alphanumeric digits as well.

Instead of a regex you can trade a bit of performance for simplicity:

<?php
$sUser
= 'my_username01';
$aValid = array('-', '_');

if(!
ctype_alnum(str_replace($aValid, '', $sUser))) {
    echo
'Your username is not properly formatted.';
}
?>
up
11
marcelocamargo at linuxmail dot org
6 years ago
It is also important to note that the behavior of `ctype_alnum` differs according to the operating system. For UNIX-based operating system, if you pass a value that is not a string (or an overloaded object), independently of the value, it will always result in false. However, if we do the same on Windows, using, for example, -1 as literal (a minus and a number greater than 0), we'll have true as result.

<?php var_dump(ctype_alnum(-1));
// UNIX: bool(false)
// Windows: bool(true)
up
19
Anonymous
9 years ago
Quicktip: If ctype is not enabled by default on your server, replace ctype_alnum($var) with preg_match('/^[a-zA-Z0-9]+$/', $var).
up
-8
Rory
12 years ago
Just for the record, Gentoo doesn't include this function by default. You'll have to recompile PHP with the "ctype" USE flag.
To Top