Estoy buscando una pequeña función que me permita eliminar la extensión de un nombre de archivo.Cómo eliminar la extensión de la cadena (¡solo la extensión real!)
He encontrado muchos ejemplos en Google, pero son malos, porque simplemente eliminan parte de la cadena con "." . Usan punto para el limitador y solo cortan la cuerda.
mirada a estos scripts,
$from = preg_replace('/\.[^.]+$/','',$from);
o
$from=substr($from, 0, (strlen ($from)) - (strlen (strrchr($filename,'.'))));
Cuando añadimos la cadena como esta:
This.is ejemplo de someString
Devolverá solo "Esto" ...
La extensión puede tener 3 o 4 caracteres, por lo que debemos verificar si el punto está en la posición 4 o 5, y luego eliminarlo.
¿Cómo se puede hacer?
¿Qué es una extensión "real"? ¿Desea eliminar los últimos 4 caracteres o caracteres si están precedidos por un punto? – clyfe
"Col. Shrapnel": está diseñado para usuarios de Windows. "clyfe" - sí, quiero eliminar todo después del punto, pero solo si está en la posición 4 o 5, lo que representará ".jpeg" o ".mp3". Simplemente no lo quito. Sé que puedo hacerlo manualmente usando str-pos y cortar cadena usando if declaración (si 5 pos = punto luego corta (rtrim) desde 5 caracteres, si 4 pos = punto luego rtrim 4, de lo contrario regresa sin ninguna modificación . Pero tal vez es la solución más rápida. – marc
¿Qué pasa con los archivos .package? o .unity? parece un poco arbitraria para restringir una extensión de 4 caracteres. – rdb