Tips de PHP: Funciones para el manejo de Nombres de Archivo

Filed Under (PHP) by admin on 12-11-2008

Tagged Under : , , , ,

Hay tres funciones en PHP que ayudan mucho para programar, las tres tienen que ver con el manejo de nombres de archivo (no con el archivo en si), estas son:

basename($cadena[, $sufijo])
Regresa el nombre del archivo o directorio, por ejemplo:

<?php
basename('/var/www/index.html'); //regresa 'index.html'
basename('/var/www'); //regresa 'www'
?>

Adicionalmente si se le pasa un segundo parámetro se removerá el sufijo si es que existe por ejemplo:

<?php
basename('/var/www/index.html', '.html'); //regresa 'index'
?>

dirname($cadena)
Regresa el nombre del directorio padre del archivo o directorio, es decir regresa lo opuesto a basename

<?php
dirname('/var/www/index.html'); //regresa '/var/www'
dirname('/var/www'); //regresa '/var'
?>

Debe notarse que no regresará el último separador (/)

pathinfo($cadena[, $opciones])
Regresa información del archivo, si no se le pasan opciones regresa un arreglo con las siguientes llaves:
dirname: nombre del directorio, es la misma salida de dirname($cadena)
basename: nombre del archivo, es la misma salida de basename($cadena)
extension: Si la extensión existe estará presente y será la extensión del archivo (cadena a partir del último .)
filename: nombre del archivo sin extension

Por ejemplo:

<?php

pathinfo('/var/www/index.html');
/*
regresa:
Array
(
    [dirname] => /var/www
    [basename] => index.html
    [extension] => html
    [filename] => index
)
*/

pathinfo('/var/www/index');
/*
regresa:
Array
(
    [dirname] => /var/www
    [basename] => index
    [filename] => index
)
*/

pathinfo('/var/www/index.inc.php');
/*
regresa:
Array
(
    [dirname] => /var/www
    [basename] => index.inc.php
    [extension] => php
    [filename] => index.inc
)
*/

pathinfo('/var/www');
/*
regresa:
Array
(
    [dirname] => /var
    [basename] => www
    [filename] => www
)
*/

?>

Adicionalmente se puede pasar una constante como parámetro para especificar unicamente un valor, en este caso la función regresa una cadena solamente; las constantes posibles son:

  • PATHINFO_DIRNAME
  • PATHINFO_BASENAME
  • PATHINFO_EXTENSION
  • PATHINFO_FILENAME

De los cuales, solamente son útiles: PATHINFO_EXTENSION y PATHINFO_FILENAME ya que PATHINFO_DIRNAME es equivalente a dirname y PATHINFO_BASENAME es equivalente a basename

PATHINFO_FILENAME evitar hacer dos llamadas (una a filepath para saber la extensión y la siguiente a basename con la extensión como sufijo para saber el nombre del archivo)

Ejemplo:

<?php

pathinfo('/var/www/index.html', PATHINFO_EXTENSION); //regresa 'html'
pathinfo('/var/www/index.html', PATHINFO_FILENAME); //regresa 'index'
?>