<?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"
*/
string(36) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
string(14) "Lorem Ipsum is"
string(14) "Lorem Ipsum
is"
string(11) "Lorem Ipsum"
string(14) "Lorem Ipsum is"
string(11) "Lorem Ipsum"
string(14) "Lorem Ipsum is"
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
string(36) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
string(14) "Lorem Ipsum is"
string(14) "Lorem Ipsum
is"
string(11) "Lorem Ipsum"
string(14) "Lorem Ipsum is"
string(11) "Lorem Ipsum"
string(14) "Lorem Ipsum is"