Justi 21 de julio de 2008 a las 13.05
   Imprimir artículo
elWebmaster.com

Taller de PHP: Manipulación de archivos (2)


Taller de PHP: Manipulación de archivos (2)¡Hola a todos los lectores del Taller de PHP! ¿Estuvieron practicando bastante? Recuerden que la clase pasada comenzamos a ver cómo crear y manejar archivos (aprendimos a crear un txt, a abrirlo con la función fopen, a cerrarlo con fclose y a leerlo con fread).

Hoy vamos a ver la segunda parte de manejo de archivos. En esta clase veremos como escribir y borrar archivos. Estonos permitirá, por ejemplo, crear un archivo HTML que adentro contenga lo que sea que queramos. ¡Comencemos!

fwrite

Para comenzar a escribir archivos, usaremos la función fwrite:

fwrite( $puntero, "Texto que queremos guardar" );

Un ejemplo de su uso sería algo así:

$fp = fopen("archivo.txt", "a");
fwrite($fp, "Escribimos un texto con lo que queremos guardar \r\n");
fclose($fp);

¿Qué fue lo que hicimos?

Primero abrimos el archivo archivo.txt con el modo a, es decir que, si el archivo no existía lo creamos, y si existía y tenía contenido, el nuevo contenido que escribimos va a ser al final de todo, ya que el modo “a” posiciona el puntero al final.

Luego de eso, usamos fwrite, pasándole el puntero que acabamos de abrir y luego el texto, fíjense que en el string que le pasamos, agregue al final \n\r, esto es para que haga un salto de linea en el archivo.txt que estamos creando, para que, si escribimos más texto, el mismo se ubique en un reglón por debajo y no todo de corrido.

Luego de esto, cerramos el puntero.

Casos de Uso

Recuerdan la clase pasada que yo les dije que podían crear html o xml con este método, pues es muy sencillo, por ejemplo si queremos crear un html podemos hacer simplemente:

$fp = fopen("holamundo.html", "a");
fwrite($fp, "<html><head><title>Hola Mundo</title></head><body><h1>Hola Mundo</h1></body></html>");
fclose($fp);

Sencillo ¿no? incluso si quieren pueden ponerle saltos de línea al html para que cuando lo abran con algún editor, no este todo el texto de corrido.

Eliminar un archivo

Para borrar directamente un archivo del servidor usamos la función unlink.

unlink("url absoluta al archivo");

Por ejemplo si queremos borrar el archivo.txt lo hacemos de la siguiente manera:

$url = "c:/documentos/archivo.txt";
if ( file_exists( $url ) )
unlink( $url );

Fíjense que primero nos fijamos que exista el archivo ya que, si no existe, unlink nos va a tirar un error.

<< CLASE ANTERIOR

CLASE SIGUIENTE >>


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (7)

  1. Guada dice:

    Esperaba el mismo tipo de error que el ejercicio pasado y, efectivamente, esta es la respuesta:

    Warning: fopen(./archivo_nuevo.txt) [function.fopen]: failed to open stream: Resource temporarily unavailable in /var/www/test-PHP-ESCRITURA_ARCHIVO.php on line 10

  2. Guada dice:

    Pienso que estaría bien crear una base de datos de recetas.
    Cuando acabe el tutorial este sin problemas a ver si puedo.Lo veo muy muy difícil. Creo que apareceran un montón de problemas y errores porque aquí vemos la superficie de las cosas.

  3. Hacker dice:

    hola, vi un post parecido a este, y me intrigo una duda, el tutorial esta excelente, solo que no se si con el fclose($fp); se esta aguardando automaticamente el documento, o tenermos que agregar una linea como esta: $file = “prueba.htm”;

  4. Hacker dice:

    y en dado caso que lo que quisiera guardar en el documento de texto fuera la IP, con esto. $ip = $_SERVER[‘REMOTE_ADDR’]; como me kedaria la linea de codigo ??. gracias y saludo (pd: soy novato en esto es x eso q tengo muchas dudas aun)

  5. Weyne dice:

    Bien explicado el tutorial, ahora si alguien quiere guardar la ip del visitante en un block de notas seria de esta forma:

  6. Weyne dice:

    $nombreArchivo = “mundo.txt”;//Nombre del Archivo txt
    $archivo = fopen($nombreArchivo,”a”);//Abrimos el Archivo txt con la opcion de “Escritura”
    $cadena = “Ip del Visitante: {$_SERVER[‘REMOTE_ADDR’]}\r\n”;
    fwrite($archivo,$cadena);
    fclose($archivo);

  7. silvia dice:

    Hola mi codigo es lo siguiente:
    <?
    //este for me premite mostrar los archivos de un directorio
    for($i=0; $i<count($pn); $i++){
    $imagen_array=$pn[$i];
    $link_img = $ruta.$imagen_array.”,”.””;
    echo $link_img;
    }
    //echo me muestra el array de esta manera:

    ‘pages/page-0.jpg’
    ‘pages/page-1.jpg’
    ‘pages/page-2.jpg’
    ‘pages/page-3.jpg’

    //este codigo me permite insertar en archivo.html
    $fileOne = “archivo.html”;
    $fileHandle = fopen($fileOne, ‘w’) or die(“file could not be accessed/created”);
    $textIWantToInsert = “Hola Mundo”;
    fwrite($fileHandle, $textIWantToInsert);
    fclose($fileHandle);
    ?>
    //y me funciona correctamente

    el problema que tengo es que la variable $textIWantToInsert quiero que sea igual a echo $link_img y me genere mi array..
    pero cuando pongo $textIWantToInsert = $link_img

    solo me escribe en mi html:
    ‘pages/page-3.jpg’
    // y no me muestra los demas archivos..
    ¿que puedo estar haciendo mal?.. por favor si me podria ayudar

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder