3v4l.org

run code in 300+ PHP versions simultaneously
<?php $whitespaces = [ 'character tabulation' => "\u{0009}", 'line feed' => "\u{000A}", 'line tabulation' => "\u{000B}", 'form feed' => "\u{000C}", 'carriage return' => "\u{000D}", 'space' => "\u{0020}", 'next line' => "\u{0085}", 'no-break space' => "\u{00A0}", 'ogham space mark' => "\u{1680}", 'mongolian vowel separator' => "\u{180E}", 'en quad' => "\u{2000}", 'em quad' => "\u{2001}", 'en space' => "\u{2002}", 'em space' => "\u{2003}", 'three-per-em space' => "\u{2004}", 'four-per-em space' => "\u{2005}", 'six-per-em space' => "\u{2006}", 'figure space' => "\u{2007}", 'punctuation space' => "\u{2008}", 'thin space' => "\u{2009}", 'hair space' => "\u{200A}", 'zero width space' => "\u{200B}", 'zero width non-joiner' => "\u{200C}", 'zero width joiner' => "\u{200D}", 'line separator' => "\u{2028}", 'paragraph separator' => "\u{2029}", 'narrow no-break space' => "\u{202F}", 'medium mathematical space' => "\u{205F}", 'word joiner' => "\u{2060}", 'ideographic space' => "\u{3000}", 'zero width non-breaking space' => "\u{FEFF}" ]; $patterns = [ '/\s+/', '/\s+/u', '/\pZ+/u', '/\pC+/u', '/[\pZ\pC]+/u', '/[\x{0009}-\x{000D}\x{0020}\x{0085}\x{00A0}\x{1680}\x{180E}\x{2000}-\x{200D}\x{2028}-\x{202F}\x{205F}\x{2060}\x{3000}\x{FEFF}]+/ux', ]; printf("\n|%-30s |", 'whitespace characters'); foreach ($patterns as $pattern) { printf(" %-12s |", $pattern); } printf("\n|%s%s|", str_repeat('-', 31), str_repeat('|:' . str_repeat('-', 12) . ':', count($patterns))); foreach ($whitespaces as $name => $char) { printf("\n|%30s |", $name); foreach ($patterns as $pattern) { printf(" %-13s |", mb_strlen(preg_replace($pattern, '', $char)) ? '❌' : '✅'); } }

preferences:
31.22 ms | 407 KiB | 5 Q