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