ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Check for printable character(s)

说明

bool ctype_print ( string text )

Checks if all of the characters in the provided string, text, are printable.

参数

text

The tested string.

返回值

Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.

范例

例子 1. A 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";
    }
}
?>

上例将输出:

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.


add a note add a note User Contributed Notes
pcdinh at gmail dot com
12-Mar-2006 08:43
This function has problems with string quoted with single quotes.

This code proves that

<?php

$ch
= chr('%0A\\\');
$strings = array(
\\\'string1\\\' => \\\'asdf\\\\n\\\\r\\\\t\\\', \\\'string2\\\' => $ch);
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\\\";
   }
}
?>

returns

The string
\\\'string1\\\' consists of all printable characters.
The string
\\\'string2\\\' does not consist of all printable characters.

So always quote your strings with double quotes.
flatline at greyhat dot nl
04-Mar-2004 08:58
It seems that this function does not recognize characters such as '', '', '', '' as printable.

Depends on your locale settings, in the default "C" locale they are
indeed not printable as it is 7bit ASCII based. (hartmut)