viernes, 7 de noviembre de 2014

PHP (08) Archivos (01) Abriendo archivos con fopen

Antes de trabajar con un archivo hay abrirlo, para ello se utiliza la siguiente instrucción:
$filehandle = fopen (filename, mode [, use_include_path [, zcontext]])

Donde podemos ver como se utiliza la función fopen() con una serie de argumentos:
  • filename: nombre del archivo que se va a abrir
  • mode: forma en la que se quiere abrir, para leerlo, escribir en el...
  • use_inclide_path: puede establecerse en 1 o en TRUE para especificar que desea buscar el archivo en la ruta de inclusión de PHP.
  • zcontext: aloja un contexto de archivo opcional:
    • 'r' Abrir sólo para lectura.
    •  'r+' Abrir para lectura y escritura.
    •  'w' Abrir sólo para escritura y truncar el archivo en longitud cero. Si el archivo no
      existe, intente crearlo.
    •  'w+' Abrir para lectura y escritura y truncar el archivo a longitud cero. Si el archivo
      no existe, intente crearlo.
    •  'a' Abrir sólo para anexar. Si el archivo no existe, intente crearlo.
    •  'a+' Abrir para lectura y escritura, comenzando al final del archivo. Si el archivo no
      existe, intente crearlo.
    •  'x' Crear y abrir sólo para escritura. Si el archivo ya existe, la llamada fopen fallará
      devolviendo FALSE.
    •  'x+' Crear y abrir para lectura y escritura. Si el archivo ya existe, la llamada fopen
      fallará devolviendo FALSE.

Observa que diferentes sistemas operativos tienen diferentes convenciones para finalizar
líneas. Cuando escribimos un archivo de texto y deseamos insertar un cambio de línea, necesitamos utilizar el o los caracteres de final de línea correctos para nuestro sistema operativo. Los sistemas basados en Unix usan \n como carácter de final de línea; los sistemas con Windows utilizan \r\n, mientras los sistemas Macintosh utilizan \r para el mismo efecto.

En Windows, se puede emplear una bandera de traducción en modo de texto (‘t’), que traducirá
\n a \r\n cuando trabaje con el archivo. En contraste, también se puede usar ‘b’ para forzar el
modo binario, que no traducirá sus datos. Para usar estas banderas, especifique ‘b’ o ‘t’ como
el último carácter del parámetro modo, como ‘wt’.

En este momento, el modo predeterminado está en binario para todas las plataformas
distinguiendo entre modo binario y de texto. Si tiene problemas con sus scripts, pruebe usar la
bandera ‘t’

A continuación vamos a abrir un archivo que hemos creado en archivo\file.txt
Para ello usaremos la instrucción
$handle = fopen("/home/file.txt", "r");

hemos puesto las barras invertidas ya que pueden leerse tanto en windows como en Linux.
en la dirección se pueden poner direcciones URL o los datos de acceso a ftp como vemos a continuacion:
$handle = fopen("direccion URL", "r");
$handle = fopen("ftp://usuario:contraseña@servidor/file.txt", "w");

Finalmente hemos de saber que si el archivo se abre correctamente nos devuelve TRUE y en caso contrario false, de este modo podemos saber si se ha cogido o no correctamente utilizando una simple instrucción if:
<?php
$handle = fopen("archivo/file.txt", "w");
if($handle){
 echo 'El archivo se ha abierto correctamente';
}else{
 echo 'ERROR AL ABRIR EL ARCHIVO';
}

?>

Lo cual al jecutarlo nos da como resultado:
El archivo se ha abierto correctamente

No hay comentarios:

Publicar un comentario