Skip to content

Instantly share code, notes, and snippets.

@dynamicguy
Created August 6, 2012 09:13

Revisions

  1. dynamicguy created this gist Aug 6, 2012.
    41 changes: 41 additions & 0 deletions elipsize.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    <?php

    if ( ! function_exists('ellipsize'))
    {
    /**
    * Ellipsize String
    *
    * This function will strip tags from a string, split it at its max_length and ellipsize
    *
    * @param string string to ellipsize
    * @param int max length of string
    * @param mixed int (1|0) or float, .5, .2, etc for position to split
    * @param string ellipsis ; Default '...'
    * @return string ellipsized string
    */
    function ellipsize($str, $max_length, $position = 1, $ellipsis = '&hellip;')
    {
    // Strip tags
    $str = trim(strip_tags($str));

    // Is the string long enough to ellipsize?
    if (strlen($str) <= $max_length)
    {
    return $str;
    }

    $beg = substr($str, 0, floor($max_length * $position));
    $position = ($position > 1) ? 1 : $position;

    if ($position === 1)
    {
    $end = substr($str, 0, -($max_length - strlen($beg)));
    }
    else
    {
    $end = substr($str, -($max_length - strlen($beg)));
    }

    return $beg.$ellipsis.$end;
    }
    }