short filename if it's too long but keep the files extension

Viewed 27

i have this function to shorten the filename if it is over 23 characters to "...", but i want to keep the files extension

function formatNameFile($nama) {
    return strlen($nama) > 23 ? mb_strimwidth($nama, 0, 23, "...") : $nama;
}

 echo formatNameFile('resume_t8ffvwnjxibqwhu5l0mk1jwu9mmb4b_3.pdf');

my output

resume_t8ffvwnjxibqw...

expected output

resume_t8ffvwnjxibqw...pdf

how do i achieve this? please help.

1 Answers

You need to separate handling of filename and file extension.

<?php
function formatNameFile($nama) {
    $array = explode('.', $nama);
    $extension = end($array);
    $newName = strlen($nama) > 23 ? mb_strimwidth($nama, 0, 23, "...") : $nama;
    return $newName.$extension;
}

 echo formatNameFile('resume_t8ffvwnjxibqwhu5l0mk1jwu9mmb4b_3.pdf');
Related