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 референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ctype_space
Референца за `function.ctype-space.php` со подобрена типографија и навигација.
ctype_space
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_space — Провери за празно место (whitespace) карактер(и)
= NULL
Проверува дали сите карактери во дадениот string,
text, создава празно место.
Параметри
text-
Тестираниот стринг.
Забелешка:
Ако еден int помеѓу -128 и 255 вклучително е даден, се толкува како ASCII вредност на еден карактер (негативните вредности имаат додадено 256 за да дозволат карактери во опсегот на проширената ASCII. Секој друг цел број се толкува како стринг што ги содржи децималните цифри на цел бројот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОд PHP 8.1.0, поминувањето аргумент што не е стринг е застарено. Во иднина, аргументот ќе се толкува како стринг наместо како ASCII кодна точка. Во зависност од наменетото однесување, аргументот треба или да се префрли на string или експлицитно повикување на chr() треба да се направи.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true ако секој знак во text
создава некаков вид празно место, false инаку. Покрај празниот карактер, ова вклучува и таб, вертикален таб, пренос на ред, враќање на количка и карактер за пренос на страница. Кога се повикува со празен стринг, резултатот секогаш ќе биде false.
Примери
ако е овозможен колекторот за отпадоци, ctype_space() example
<?php
$strings = array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // note the single quotes
);
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "The string '$name' consists of whitespace characters only.\n";
} else {
echo "The string '$name' contains non-whitespace characters.\n";
}
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
The string 'string1' consists of whitespace characters only. The string 'string2' contains non-whitespace characters. The string 'string3' contains non-whitespace characters.
Види Исто така
- ctype_cntrl() - Провери за контролен карактер(и)
- ctype_graph() - Провери за било кој печатлив карактер(и) освен празно место
- ctype_punct() - Провери за било кој печатлив карактер што не е бело место или алфанумерички карактер
- IntlChar::isspace() - Провери дали кодното место е празно место карактер
Белешки од корисници 2 забелешки
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.