Si pero si empiezas por el final... Si....
A ver si me entiendes....
La fecha si que va a tener la misma longitud si el formato incluye CEROS.
Te guardas la cadena completa
Entonces puedes recortar la fecha primero.
Y una vez la haz recortado creo que con la funcion strlength sabes el tamaño completo...
Restas el número de caracteres total con el número de caracteres contados desde el final hasta la fecha.
Y asi tendrás la longitud de el nombre... Pudiendo recortar a placer la cadena....
Código PHP:
$cadena=Hola_Pepe_05-05-2011.txt;
$longitud=strlen($cadena);
$fecha=substr($cadena, 0 ,-14 o -15 "NO LO SE");
$long_archivo=$longitud-14 o 15;
$archivo=substr($cadena,0,$long_archivo);
Si no funciona lo del -14 o -15 (linea 2)
Lo puedes solucionar haciendo la resta antes....
Código PHP:
$cadena=Hola_Pepe_05-05-2011.txt;
$longitud=strlen($cadena);
$long_archivo=$longitud-14 o 15;
$fecha=substr($cadena, $long_archivo ,$longitud);
$archivo=substr($cadena,0,$long_archivo);
Espero que te ayude... si no lo entiendes no le des vuelta xk no quiero liarte...:D SUERTEE
Si me equivoco que alguien me corrija pero esque lo he hecho rápido xk estoy en el curro xD