Re: Catch line indetation
| From: | Christoph M. Becker | Date: | Fri, 28 Oct 2016 13:21:19 +0000 |
| Subject: | Re: Catch line indetation | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-325784@lists.php.net to get a copy of this message | ||
On 28.10.2016 at 14:51, Richard wrote:
>> Date: Friday, October 28, 2016 12:09:31 +0100
>> From: Ashley Sheridan <ash@ashleysheridan.co.uk>
>>
>> On 28 October 2016 12:01:16 BST, Narcis Garcia
>> <informatica@actiu.net> wrote:
>>
>>> Hello, I have a string (I quote here only) as:
>>>
>>> ' <table>...</table>'
>>>
>>> As you can see there are 3 spaces at the beginning, but it could
>>> be 0 or
>>> 4 or any number of spaces.
>>> How can I get a string with only the initial spaces part?
>>>
>>> ' <table>...</table>' -> ' '
>>> 'hello' -> ''
>>> ' hello' -> ' '
>>>
>>> Thanks.
>>
>> Have you tried regular expressions? Something like:
>>
>> ^( )*[^ ]
>>
>> The first captured match is the number of spaces, from 0 to any
>> amount. Not the space between the brackets and before the closing
>> square bracket
>
> You need to take into consideration that "whitespace" can be created
> by more than the simple "space" (ascii 32) character. A "[horizontal]
> tab" (ascii 9) is common, but also look at the top of php trim
> function documentation:
>
> <http://php.net/manual/en/function.trim.php>
>
> to see the characters that it handles as "whitespace".
If general whitespace should be detected with a regexp, \s could be used.
> While "trim"
> does the opposite of what you're after, […]
Indeed, so one could do something like
substr($string, 0, strlen($string) - strlen(ltrim($string)))
I'd prefer a regexp solution, though.
--
Christoph M. Becker