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-symbolsctype_print
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ctype_print
Референца за `function.ctype-print.php` со подобрена типографија и навигација.
ctype_print
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_print — Провери за печатен(и) карактер(и)
= NULL
Проверува дали сите карактери во дадениот string,
text, се печатат.
Параметри
text-
Тестираниот стринг.
Забелешка:
Ако еден int помеѓу -128 и 255 вклучително е даден, се толкува како ASCII вредност на еден карактер (негативните вредности имаат додадено 256 за да дозволат карактери во опсегот на проширената ASCII. Секој друг цел број се толкува како стринг што ги содржи децималните цифри на цел бројот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОд PHP 8.1.0, поминувањето аргумент што не е стринг е застарено. Во иднина, аргументот ќе се толкува како стринг наместо како ASCII кодна точка. Во зависност од наменетото однесување, аргументот треба или да се префрли на string или експлицитно повикување на chr() треба да се направи.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true ако секој знак во text
всушност ќе создаде излез (вклучувајќи празни места). Враќа false if
text содржи контролни карактери или карактери што немаат никаква функција за излез или контрола. Кога се повикува со празен стринг, резултатот секогаш ќе биде false.
Примери
ако е овозможен колекторот за отпадоци, ctype_print() example
<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
if (ctype_print($testcase)) {
echo "The string '$name' consists of all printable characters.\n";
} else {
echo "The string '$name' does not consist of all printable characters.\n";
}
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
The string 'string1' does not consist of all printable characters. The string 'string2' consists of all printable characters. The string 'string3' consists of all printable characters.
Види Исто така
- ctype_cntrl() - Провери за контролен карактер(и)
- ctype_graph() - Провери за било кој печатлив карактер(и) освен празно место
- ctype_punct() - Провери за било кој печатлив карактер што не е бело место или алфанумерички карактер
- IntlChar::isprint() - Провери дали код-точката е печатен карактер
Белешки од корисници 4 белешки
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.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);
}
?>