Re: string effect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mr. Heyes more or less prompted me to go dig for my other, slightly
heavier version, that doesn't chop words up:

Sorry I hit Reply instead Reply All. Regardless, here's my str_curtail. There is a bug in it that means if the string is all one word then it gets curtailed to nada, but that's easily fixed.

    /**
    * Shortens the given string to the specified number of characters,
    * however will never shorten mid-word (going backwards to find white
    * space). Appends
    * "..." (unless third arg is given).
    *
    * @param  string $str    Input to shorten
    * @param  int    $length Length to shorten to (defaults to 35)
    * @param  string $append String to append (defaults to "...")
    * @return string         Resulting shortened string
    */
    function str_curtail($str, $length = 35, $append = '...')
    {
        // String short enough already ?
        if (strlen($str) <= $length) {
            return $str;
        }

        $str = substr($str, 0, $length);

        // No body intentionally
        for ($i=$length - 1; !ctype_space($str{$i}) && $i > 0; --$i);

        return rtrim(substr($str, 0, $i)) . $append;
    }

--
Richard Heyes
Employ me:
http://www.phpguru.org/cv

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux