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.
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_print — Проверяет наличие печатных символов
Проверяет, все ли символы в переданной строке
text
являются печатными.
text
Проверяемая строка.
Замечание:
Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.
Возвращает true
, если каждый символ в строке text
фактически создаёт вывод (включая пробелы). Возвращает false
, если
text
содержит управляющие символы, или символы,
которые вообще не имеют никакого вывода или функции управления.
Пример #1 Пример использования ctype_print()
<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
if (ctype_print($testcase)) {
echo "Строка '$name' состоит только из печатных символов.\n";
} else {
echo "Строка '$name' не состоит только из печатных символов.\n";
}
}
?>
Результат выполнения данного примера:
Строка 'string1' не состоит только из печатных символов. Строка 'string2' состоит только из печатных символов. Строка 'string3' состоит только из печатных символов.
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.
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