Desarrollo Web

Obtener extension de archivo usando PHP

Existen muchas manersa para obtener la extensión de un archivo PHP . He buscado mucho en internet, y existe una forma que se basa en el nombre del archivo.

Extensión en base al nombre del archivo

Una de las manera más comunes es buscando el último punto y tomar el resto como extensión.

Por ejemplo:

Miarchivo.23.12.2012.jpg

Si utizamos la función strrchr(), podriamos hacer algo como esto:


strrchr('Miarchivo.23.12.2012.jpg', '.');

lo que nos resultaria: «.jpg»

A primera vista, resolvimos el problema. Sin embargo, esto puede ser algo peligroso ya que es posible que tengamos que extraer el nombre un archivo que no tiene extensión. Por ejemplo:

strrchr('Miarchivo.23.12.2012', '.');

Nos resultaría: «.2012» que obviamente no tiene sentido.

Extensión en base al tipo de archivo

Para este caso podemos usar la extensión pathinfo()  (http://php.net/manual/es/function.pathinfo.php)

la cual podríamos usar de la siguiente manera:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Fuente: http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php

Desarrollo Web

Instalar Xdebug en Wamp – Windows

Para los que empiezan a programar en PHP les resulta un poco complicado encontrar algunos errores en su código, ya que siendo PHP un lenguaje interpretado, y los warnings o errores generados por el Apache no nos muestra información suficiente para hacer debug. Por ello, deberíamo usar Xdebug, que nos brinda mucha información adicional que nos permitirá identificar errores en nuestro código.

Obteniendo información de la configuración PHP instalada en nuestra máquina

Primero debemos averiguar la versión de PHP que tenemos instalados. Esta información puede ser obtenida usando la función phpinfo().

Se debe crear un archivo php que contenga el siguiente código:

<?php
phpinfo();
?>

Al acceder al archivo, se generara una página como esta:

Instalando Xdebug

Luego nos dirigimos a esta página: http://www.xdebug.org/find-binary.php y en el formulario copiaremos todo el contenido de la página de información de PHP de nuestro servidor.

Luego de dar click en el botón «Analyse my phpinfo() output», nos mostrará un resultado como el siguiente:

  1. Primero debemos descargar la versión más reciente del Xdebug para la versión de PHP que tenga instalada en su máquina. Como puede ver, está página automáticamente le mostrará el link para que descargue la versión indicada de la librería DLL.
  2. Luego copiamos la libreria DLL del Xdebug en la carpeta de extensiones de PHP, en mi máquina está en D:\wamp\bin\apache\Apache2.2.11\bin\php.ini
  3. Luego debemos configurar el Xdebug para que pueda ser reconocido por PHP. Para ello necesitamos editar el archivo php.ini. En mi caso, está en c:\wamp\php\php.ini y el Apache está en c:\wamp\Apache2\bin\php.ini. Se deben modificar ambos archivos.Agregue lo siguiente en su archivo php.ini
    
    [xdebug]
    zend_extension = D:\wamp\bin\php\php5.3.0\ext\php_xdebug-2.1.0-5.3-vc6.dll
    xdebug.profiler_output_dir = D:/wamp/tmp/xdebug
    xdebug.profiler_output_name = "cachegrind.out.%p"
    xdebug.profiler_enable = 0
    xdebug.profiler_append=0
    xdebug.extended_info=1
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.idekey=xdebug
    xdebug.remote_log=D:/wamp/tmp/xdebug/xdebug_remot.log
    xdebug.show_exception_trace=0
    xdebug.show_local_vars=9
    xdebug.show_mem_delta=0
    xdebug.trace_format=0
    
    

    Obviamente en la lineas indicadas se debe cambiarpor las rutas en las que tiene instalado el WAMP

  4. Cree una carpeta ‘xdebug’ dentro de  D:\wamp\tmp
  5. Reinicie el servicio Apache.

Para comprobar que tenemos el Xdebug instalado, tenemos que ir otra vez a la página donde hayamos mostrado la información de la configuración PHP, y debemos encontrar lo siguiente:

Comprobando

Para comprobar, haremos un pequeño ejemplo:


<?php
$a = 0;
$b = 1;

$c = $b/$a;
echo 'respuesta es '.$c;
?>

Por defecto:

Con Xdebug:

Siguenos en Facebook