yo primero testearía printando solo;
Cita: if (file_exists($imagen)){
echo "existe";
} else {
echo "no existe";
}
Y simplificas más la cuestión.
A ver, primero haz pruebas con rutas de imagen
estáticas, así te aseguras de que estás escribiendo bien la ruta. Una vez des con la ruta correcta, 90% de posiblidades de q este sea el problema), dinamizas la función y, ya al final, insertas el html en los
echo.
Y recuerda q no es bueno empezar la casa por el tejado...
step by step!!