A volte capita di dover troncare una stringa nel mezzo, ad esempio se vogliamo stampare all’utente un path molto lungo o un indirizzo email o ancora un url, in questo modo si da un idea all’utente di cosa abbiamo stampato senza però stamparlo per intero.Ecco una semplice funzione che taglia in 2 una stringa aggiungendo al centro caratteri sostitutivi:
function trunkStringMiddle($longString,$maxlength=250,$separator='[...]'){
if (strlen($longString)<=$maxlength){
return $longString;
}
$separatorlength = strlen($separator) ;
$maxlength = $maxlength - $separatorlength;
$start = $maxlength / 2 ;
$trunc = strlen($longString) - $maxlength;
return substr_replace($longString, $separator, $start, $trunc);
}
L’uso è molto semplice ecco un esempio:
echo trunkStringMiddle('/questo/e/un/path/molto/lungo/e/quindi/lo/tronchiamo/text.txt',50);
//ritorna:
// /questo/e/un/path/molt[...]/lo/tronchiamo/text.txt

