Cut/truncate text to specific length. #php #strings
<?php
/**
* Cut text to specific length.
*
* @author JoseRobinson.com
* @version 201306301956
* @link GitHup: https://gist.github.com/5897554
* @param string $str The text to cut.
* @param int $limit The maximum number of characters that must be returned.
* @param stirng $brChar The character to use for breaking the string.
* @param string $pad The string to use at the end of the cutted string.
* @return string
*/
function cutText($str, $limit, $brChar = ' ', $pad = '...')
{
if (empty($str) || strlen($str) <= $limit) {
return $str;
}
$output = substr($str, 0, ($limit+1));
$brCharPos = strrpos($output, $brChar);
$output = substr($output, 0, $brCharPos);
$output = preg_replace('#\W+$#', '', $output);
$output .= $pad;
return $output;
}
Use this function to cutting text to a specific length, with the ability to prevent that the last word be cutted in half.
require 'cutText.php';
$text1 = 'Lorem ipsum dolor sit amet, sed do eiusmod tempor incididunt ut laboredo.';
// Normal usage:
printf('%s<br>', cutText($text1, 20));
// Using an space for break the string:
printf('%s<br>', cutText($text1, 20, ' '));