Código PHP:
$imagenyruta = "carpeta1/carpeta2/carpeta3.../imagen.jpg";
list($carpeta1,$carpeta2,$carpeta3...,$archivo) = split("/",$imagenyruta);
list($nombre,$ext) = split(".",$archivo);
echo $nomrbe; //imprime "imagen"
echo $ext; //imprime "jpg"
La única desventaja de este código, es que necesitas saber la profundidad de las carpetas y crear variables para cada una de ellas, al momento de usar el list.
He mejorado el código y solamente te devuelve el nombre sin la extensión, y la extensión por separado.
Código PHP:
$cadena = 'carpeta1/carpeta2/imagen.gif';
$posicion = strrpos ($cadena,'/') + 1;
$extension = strrpos($cadena,'.');
$resultado = substr($cadena,$posicion,$extension - $posicion);
$ext = substr($cadena,$extension);
print($resultado);
print("<BR>");
print($ext);
Puede ser un poco más largo, pero si la ubicación de tus imagenes cambia por ejemplo a 'Carpeta1/Carpeta2/Carpeta3/..../Imagen.jpg', no tienes que modificar el código.
Saludos,
Blag