<?php
function truncate($string, $width, $on = '[break]') {
if (strlen($string) > $width && false !== ($p = strpos(wordwrap($string, $width, $on), $on))) {
$string = sprintf('%.'. $p . 's', $string);
}
return $string;
}
var_dump(truncate('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', 20));
/*
string(36) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
*/
var_dump(truncate("Lorem Ipsum is simply dummy text of the printing and typesetting industry.", 20));
/*
string(14) "Lorem Ipsum is"
*/
var_dump(truncate("Lorem Ipsum\nis simply dummy text of the printing and typesetting industry.", 20));
/*
string(14) "Lorem Ipsum
is"
*/
function truncate_strtok($string, $width) {
return strtok(wordwrap($string, $width), "\n");
}
var_dump(truncate_strtok("Lorem Ipsum\nis simply dummy text of the printing and typesetting industry.", 20));
/*
string(11) "Lorem Ipsum"
*/
var_dump(truncate_strtok("Lorem Ipsum is simply dummy text of the printing and typesetting industry.", 20));
/*
string(14) "Lorem Ipsum is"
*/
function truncate_wrap($string, $width) {
if (strlen($string) > $width) {
$string = wordwrap($string, $width);
$string = substr($string, 0, strpos($string, "\n"));
}
return $string;
}
var_dump(truncate_wrap("Lorem Ipsum\nis simply dummy text of the printing and typesetting industry.", 20));
/*
string(11) "Lorem Ipsum"
*/
var_dump(truncate_wrap("Lorem Ipsum is simply dummy text of the printing and typesetting industry.", 20));
/*
string(14) "Lorem Ipsum is"
*/