I have the php code below which help me get a photo’s thumbnail image path in a script
It will take a supplied value like this from a mysql DB ‘2/34/12/thepicture.jpg’
It will then turn it into this ‘2/34/12/thepicture_thumb1.jpg’
I am sure there is a better performance way of doing this and I am open to any help please
Also on a page with 50 user’s this would run 50 times to get 50 different photos
// the photo has it is pulled from the DB, it has the folders and filename as 1
$photo_url = '2/34/12/thepicture_thumb1.jpg';
//build the full photo filepath
$file = $site_path. 'images/userphoto/' . $photo_url;
// make sure file name is not empty and the file exist
if ($photo_url != '' && file_exists($file)) {
//get file info
$fil_ext1 = pathinfo($file);
$fil_ext = $fil_ext1['extension'];
$fil_explode = '.' . $fil_ext;
$arr = explode($fil_explode, $photo_url);
// add "_thumb" or else "_thumb1" inbetween
// the file name and the file extension 2/45/12/photo.jpg becomes 2/45/12/photo_thumb1.jpg
$pic1 = $arr[0] . "_thumb" . $fil_explode;
//make sure the thumbnail image exist
if (file_exists("images/userphoto/" . $pic1)) {
//retunr the thumbnail image url
$img_name = $pic1;
}
}
1 thing I am curious about is how it uses pathinfo() to get the files extension, since the extension will always be 3 digits, would other methods of getting this value better performance?
Performance-wise, if you’re calling built-in PHP functions the performance is excellent because you’re running compiled code behind the scenes.
Of course, calling all these functions when you don’t need to isn’t a good idea. In your case, the
pathinfofunction returns the various paths you need. You call theexplodefunction on the original name when you can build the file name like this (note, the ‘filename’ is only available since PHP 5.2):If you don’t have PHP 5.2, then the simplest way is to ignore that function and use
strrposandsubstr: