Just do this:
$string = str_replace("\n", "<br>", $string);
$string = trim_text($string);
$string = str_replace("<br>", "\n", $string);

Actually <br> could be any sequence of non-whitespace characters
unlikely to be in the text in the first place.

On Fri, February 3, 2006 3:29 pm, Verdon Vaillancourt wrote:
> Hi Richard,
>
> I quickly realized this and fooled with a few variations. Also have to
> take into account that the <br> or the <br /> get counted as 1 or 2
> words respectively, and so the trim can end up in the wrong place.
> I've
> tried fiddling with counting the number of br's in the string and
> adding that to the truncation limit before the preg_split, but this is
> still not ideal.
>
> I'm going to have a look at your other suggestion too.
>
> Thanks for your thoughts :)
> verdon
>
> On 3-Feb-06, at 4:21 PM, Richard Lynch wrote:
>
>>
>>
>> This would work if you replace the <br /> with <br> -- Otherwise,
>> it's
>> too likely to break up "<br />" in the trim_text function and then
>> you
>> end up with:
>>
>> "start of string ... almost 255 words, blah blah blah<br"
>>
>> On Fri, February 3, 2006 11:25 am, John Meyer wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Verdon Vaillancourt wrote:
>>>> Hi :)
>>>>
>>>> I am using the following function (that I found in the user
>>>> comments
>>>> on
>>>> php.net manual) for trimming the number of words accepted via a
>>>> form
>>>> field
>>>>
>>>> // Truncation is by word limit, not character limit. So if you
>>>> limit
>>>> // to 255, then it will cut off a text item to 255 words, not 255
>>>> characters
>>>> function trim_text ($string, $truncation=250) {
>>>>     $string = preg_split("/\s+/",$string,($truncation+1));
>>>>     unset($string[(sizeof($string)-1)]);
>>>>     return implode(' ',$string);
>>>> }
>>>
>>>
>>> How about
>>> $string = nl2br($string);
>>> $string = trim_text($string);
>>> $string = str_replace("<br />","\n",$string);
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.2 (GNU/Linux)
>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>>
>>> iD8DBQFD45Hzj60GAoLuoDkRAjSqAKCxvGlJmSCVHozWBDjjZnKMEZOfSwCfenVj
>>> lRSChtsMRqRnOYdZpk5YQ0c=
>>> =Dnly
>>> -----END PGP SIGNATURE-----
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
>>
>> --
>> Like Music?
>> http://l-i-e.com/artists.htm
>>
>>
>>
>>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to