ctype_space
(PHP 4 >= 4.0.4, PHP 5)
ctype_space — Проверяет наличие пробельных символов
Описание
$text
)
Проверяет, все ли символы в переданной строке
text
являются пробельными.
Список параметров
-
text
-
Проверяемая строка.
Возвращаемые значения
Возвращает TRUE
, если каждый символ в строке text
создает какой-нибудь из пробельных символов, FALSE
в противном случае. Кроме
пробела, сюда также относятся символы табуляции, вертикальной табуляции, перевода строки,
возврата каретки и перевода страницы.
Примеры
Пример #1 Пример использования 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 "Строка '$name' состоит только из пробельных символов.\n";
} else {
echo "Строка '$name' не состоит только из пробельных символов.\n";
}
}
?>
Результат выполнения данного примера:
Строка 'string1' состоит только из пробельных символов. Строка 'string2' не состоит только из пробельных символов. Строка 'string3' не состоит только из пробельных символов.
Примечания
Замечание:
Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.
Смотрите также
- ctype_cntrl() - Проверяет на наличие управляющих символов
- ctype_graph() - Проверяет наличие всех печатных символов, кроме пробела
- ctype_punct() - Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами
Коментарии
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;
}
?>
thanks to gardnerjohng, but a had some problems with non-breaking spaces in this function.
I added 2 more cases for this:
case 0xC2
case 0xA0
After this modification non-breaking spaces in my test code were successfully detected.