On Fri, Oct 28, 2016 at 7:37 PM, German Geek <geek.de@xxxxxxxxx> wrote: > String functions are very fast. Regexes have to be compiled under the hood > to take advantage of their speed. A lover of assembly language could hand-code a routine to "count leading whitespace of all known types" that would blow any other solution away.* But every developer who came across it over the next decade would have to learn it.** Or you can write a function with unit tests so nobody ever has to read the gory details again.*** /** * Returns the leading whitespace from the given string or an empty string for all else. * * @param string $input converted to string if needed * @return string the leading whitespace or empty string if none */ function lspace($input) { // psuedably-cryptic c-style function name? check! if ($input && ($input = (str) $input)) { // micro-optimization alert! no idea if this helps; totally defensive. kill? if (preg_match('/^\s*/', $input, $matches)) { // ignore errors like a boss (actually, this is fine here) return $matches[0]; } } return ''; // Ask me a dumb question, get a dumb answer. } [Awesome unit tests here] [1] Cheers! David * This could be baked into the regex library too. ** You'd wrap it in a function where most readers would never see it. *** Did Unicode++ just drop? No problem, the PHP devs will fix preg_match and "\s" before you could ever notice. Stay on top of updates! **** Asterisk in regex is greedy so there's no need to find the end of the whitespace nor capture a portion of the match. Simplify! [1] http://ideone.com/PO2Xoq