PHP 8.4.1 Released!

ctype_print

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

ctype_printControlla i caratteri stampabili

Descrizione

ctype_print(mixed $text): bool

Controlla che tutti i caratteri nella string, text fornita, siano stampabili.

Elenco dei parametri

text

La stringa da testare.

Nota:

Se è fornito un integer tra -128 e 255, viene interpretato come il valore ASCII di un singolo carattere (ai valori negativi viene aggiunto 256 in modo da permettere i caratteri Extended ASCII). Qualsiasi altro intero è interpretato come una stringa contenente le cifre decimali dell'intero.

Avviso

As of PHP 8.1.0, passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to string or an explicit call to chr() should be made.

Valori restituiti

Restituisce true se ogni carattere in text crea effettivamente output (compresi spazi). Restituisce false se text contiene caratteri di controllo o caratteri che non hanno per niente alcun output o funzione di controllo. When called with an empty string the result will always be false.

Esempi

Example #1 Un esempio di 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
"The string '$name' consists of all printable characters.\n";
} else {
echo
"The string '$name' does not consist of all printable characters.\n";
}
}
?>

Il precedente esempio visualizzerà:

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.

Vedere anche:

  • ctype_cntrl() - Controlla i caratteri di controllo
  • ctype_graph() - Controlla ogni carattere stampabile tranne lo spazio
  • ctype_punct() - Controlla ogni carattere stampabile che non è uno spazio o un carattere alfanumerico
  • 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