A function I wrote last night was fairly flexible in terms of detecting whitespace, and even took into account the pesky non-breaking spaces / zero-width spaces further up the Unicode alphabet.
The benefit here was being able to isolate and identify specific Unicode indices based on their subrange.
<?php
// Returns TRUE if the ASCII value of $string matches a registered whitespace character.
// * This includes non-breaking spaces, zero-width spaces, and any unicode values below 32.
// * $string: Character to identify. If string extends past one character, the value
// is truncated and only the initial character is examined.
function is_whitespace($string){
// Return FALSE if passed an empty string.
if($string == "") return FALSE;
$char = ord($string);
// Control Characters
if($char < 33) return TRUE;
if($char > 8191 && $char < 8208) return TRUE;
if($char > 8231 && $char < 8240) return TRUE;
// Additional Characters
switch($char){
case 160: // Non-Breaking Space
case 8287: // Medium Mathematical Space
return TRUE;
break;
}
return FALSE;
}
?>
ctype_space
(PHP 4 >= 4.0.4, PHP 5)
ctype_space — Verifica se os caracteres são whitespace
Descrição
bool ctype_space
( string
$text
)
Verifica se todos os caracteres na string fornecida,
text, são whitespace.
Parâmetros
-
text -
A string a ser testada.
Valor Retornado
Retorna TRUE se todos caracteres em text
são white space, FALSE caso contrário. Além de
caracteres em branco isto também inclui os caracteres tab, vertical tab, line feed,
carriage return e form feed.
Exemplos
Exemplo #1 Um exemplo da ctype_space()
<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "The string '$name' consists of all whitespace characters.\n";
} else {
echo "The string '$name' does not consist of all whitespace characters.\n";
}
}
?>
O exemplo acima irá imprimir:
The string 'string1' consists of all whitespace characters. The string 'string2' does not consist of all whitespace characters. The string 'string3' does not consist of all whitespace characters.
Veja Também
- ctype_cntrl() - Verifica se os caracteres são de controle
- ctype_graph() - Verifica se os caracteres são imprimíveis exceto espaço
- ctype_punct() - Verifica se é um caractere imprimível que não é whitespace ou alfanumério
gardnerjohng at hotmail dot com ¶
3 years ago
