PHP 8.4.1 Released!

ctype_print

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

ctype_printSınama, basılabilir karakterler için yapılır

Açıklama

ctype_print(mixed $metin): bool

Belirtilen metin içindeki karakterlerin hepsi basılabilir karakterlerden oluşuyorsa true döner.

Bağımsız Değişkenler

metin

Sınanacak metin.

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 bağımsız değişken aktarımı önerilmemektedir. Gelecek sürümlerde, bağımsız değişken bir ASCII karakter kodu olarak değil bir dizge olarak yorumlanacaktır. Amaçlanan davranışa bağlı olarak, bağımsız değişken 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 basılabilir karakterlerden (boşluklar dahil) oluşuyorsa true döner. Denetim karakterleri, hiçbir çıktı üretmeyen veya bir işlevi denetleyen karakterleri içeriyorsa false döner. Boş dizge ile çağrıldığında sonuç daima false olur.

Örnekler

Örnek 1 - ctype_print() örneği

<?php
$dizgeler
= array('dizge1' => "asdf\n\r\t",
'dizge2' => 'arf12',
'dizge3' => 'LKA#@%.54');
foreach (
$dizgeler as $isim => $dizge) {
if (
ctype_print($testcase)) {
echo
"'$isim' tamamen basılabilir karakterlerden oluşuyor.\n";
} else {
echo
"'$isim' tamamen basılabilir karakterlerden oluşmuyor.\n";
}
}
?>

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

'dizge1' tamamen basılabilir karakterlerden oluşmuyor.
'dizge2' tamamen basılabilir karakterlerden oluşuyor.
'dizge3' tamamen basılabilir karakterlerden oluşuyor.

Ayrıca Bakınız

  • ctype_cntrl() - Sınama, denetim karakterleri için yapılır
  • ctype_graph() - Sınama, boşluk karakterleri hariç basılabilir karakterler için yapılır
  • ctype_punct() - Sınama, birer alfasayısal veya boşluk karakteri olmayan basılabilir karakterler için yapılır
  • IntlChar::isprint() - Check if code point is a printable character

add a note

User Contributed Notes 4 notes

up
5
ClayDragon
6 years ago
As mentioned above, only ASCII characters from 32 to 126 are considered printable, all others, including UTF-8 encoded characters are always considered unprintable, no matter what your locale settings are. Therefore, e.g. German "ä", the Euro sign "€" or the British pound symbol "£" will never be printable. If you need to check any characters for "printability" beyond the standard ASCII range, use a regular expression or write a specific function yourself.

See also this discussion: https://grokbase.com/t/php/php-i18n/102tkqe6rk/ctype-print-returns-false-for-british-pound-symbol-and-non-ascii-symbols
up
3
Anonymous
12 years ago
Only ascii 32 thru 126 (inclusive) are considered printable. Tab (ascii 7), carriage return (ascii 13), linefeed (ascii 10) etc may produce output but are not considered printable.
up
2
harry at upmind dot com
3 years ago
You can use this function to detect if a string is "binary".

<?php
/**
* Determine whether the given value is a binary string by checking to see if it contains only printable characters.
*
* @param string $value
*
* @return bool
*/
function isBinary($value): bool
{
// remove "unprintable" whitespace characters (tabs, newlines etc)
$string = preg_replace('/\s/', '', (string)$value);

return !empty(
$string) && !ctype_print($string);
}
?>
up
0
Kalahiri
1 year ago
To check whether a string consists only of ASCII characters, use mb_detect_encoding( $string, 'ASCII', true );
To Top