{"id":1110,"date":"2016-10-25T01:45:58","date_gmt":"2016-10-25T07:45:58","guid":{"rendered":"http:\/\/projectopy.com\/blog\/?p=1110"},"modified":"2016-10-25T01:45:58","modified_gmt":"2016-10-25T07:45:58","slug":"manejo-de-archivos","status":"publish","type":"post","link":"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/","title":{"rendered":"Manejo de archivos"},"content":{"rendered":"<h2><\/h2>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Manipulacion_de_archivos\" title=\"Manipulaci\u00f3n de archivos\">Manipulaci\u00f3n de archivos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Apertura_de_archivo\" title=\"Apertura de archivo\">Apertura de archivo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Lectura_de_archivo\" title=\"Lectura de archivo\">Lectura de archivo<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Leer_todo_el_contenido\" title=\"Leer todo el contenido\">Leer todo el contenido<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Leer_una_linea_a_la_vez\" title=\"Leer una linea a la vez\">Leer una linea a la vez<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Leer_un_caracter_a_la_vez\" title=\"Leer un caracter a la vez\">Leer un caracter a la vez<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Escritura_de_archivos\" title=\"Escritura de archivos\">Escritura de archivos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Determinar_fin_de_archivo_EOF\" title=\"Determinar fin de archivo (EOF)\">Determinar fin de archivo (EOF)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Cierre_de_archivo\" title=\"Cierre de archivo\">Cierre de archivo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Otras_manipulaciones_de_archivos\" title=\"Otras manipulaciones de archivos\">Otras manipulaciones de archivos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/iscodigo.com\/blog\/php\/manejo-de-archivos\/#Bibliografia\" title=\"Bibliograf\u00eda\">Bibliograf\u00eda<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Manipulacion_de_archivos\"><\/span>Manipulaci\u00f3n de archivos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Apertura_de_archivo\"><\/span>Apertura de archivo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para leer un archivo se utiliza la funci\u00f3n <code>fopen($ruta, $modo): resource<\/code>[1], el primer par\u00e1metro es la ruta del archivo que se desea abrir. Mientras que el modo define c\u00f3mo se desea abrir dicho archivo.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lectura_de_archivo\"><\/span>Lectura de archivo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Una vez abierto el archivo, es posible leer el archivo. Existen varias manera de leer un archivo:<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Leer_todo_el_contenido\"><\/span>Leer todo el contenido<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Esto puede realizarse con la funci\u00f3n <code>fread(resource $recurso, int $tama\u00f1o): string<\/code>[2]. Es importante destacar que el parametro tama\u00f1o establece cu\u00e1ntos bytes se leer\u00e1n del archivo. Se finaliza la lectura cuando ocurre las siguientes posibilidades:<\/p>\n<ul>\n<li>Se llega al tama\u00f1o establecido de bytes<\/li>\n<li>Se llega al final de archivo (EOF)<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Leer_una_linea_a_la_vez\"><\/span>Leer una linea a la vez<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Con la funci\u00f3n <code>fgets(resource $recurso, int $tama\u00f1o)<\/code>[3], se lee una linea del archivo o en caso de establecer <em>$tama\u00f1o<\/em> ese n\u00famero de bytes o que se llegue al EOF.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Leer_un_caracter_a_la_vez\"><\/span>Leer un caracter a la vez<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Con la funci\u00f3n <code>fgetc(resource $recurso)<\/code>[4], se lee car\u00e1cter a la ves del archivo abierto. Luego un puntero interno apunta hacia el siguiente car\u00e1cter o termina al hallar un EOF.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Escritura_de_archivos\"><\/span>Escritura de archivos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para escribir datos binarios de forma segura en un archivo se utiliza la funci\u00f3n <code>fwrite(resource $recurso, string $cadena)<\/code>[5]. La forma de escritura depende del modo en el que se abre el archivo, con <code>fopen()<\/code>, si es utilizando:<\/p>\n<ul>\n<li>Modo <strong>W<\/strong>, se sobrescribir\u00e1 en el archivo.<\/li>\n<li>Modo <strong>A<\/strong>, se agrega, al final del archivo el contenido.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Determinar_fin_de_archivo_EOF\"><\/span>Determinar fin de archivo (EOF)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para terminar si el archivo ya lleg\u00f3 al final del archivo, se utiliza la funci\u00f3n <code>foef(resource $recurso): bool<\/code>[6].<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cierre_de_archivo\"><\/span>Cierre de archivo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Una vez que el archivo fue utilizado debe cerrarse, liberando el recurso. Esto es utilizando la funci\u00f3n <code>fclose(resource $recurso)<\/code>[7].<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Otras_manipulaciones_de_archivos\"><\/span>Otras manipulaciones de archivos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Es posible manipular directamente a los archivos con otras funciones que pueden simplifican esta labor.<\/p>\n<ul>\n<li><code>file(string $ruta)<\/code>: Al utilizar esta funci\u00f3n se permite leer todo el archivo y devolver un array del contenido, separado en p\u00e1rrafos [8].<\/li>\n<li><code>file_get_contents(string $ruta)<\/code>: Devuelve el contenido de un fichero en un string[9].<\/li>\n<li><code>file_put_contents(string $ruta, $datos)<\/code>: Escribe contenido a un fichero, el contenido puede ser: string, array o un recurso [10].<\/li>\n<li><code>copy(string $origen, string $destino): bool<\/code>: Copia un archivo a un directorio. Si el archivo existe se sobrescribe [11].<\/li>\n<li><code>delete(string $ruta)<\/code>: Borra un archivo [12].<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Bibliografia\"><\/span>Bibliograf\u00eda<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>http:\/\/php.net\/manual\/es\/function.fopen.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.fread.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.fgets.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.fgetc.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.fwrite.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.feof.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.fclose.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.file.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.file-get-contents.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.file-put-contents.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.copy.php<\/li>\n<li>http:\/\/php.net\/manual\/es\/function.delete.php<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Manipulaci\u00f3n de archivos Apertura de archivo Para leer un archivo se utiliza la funci\u00f3n fopen($ruta, $modo): resource[1], el primer par\u00e1metro es la ruta del archivo que se desea abrir. Mientras que el modo define c\u00f3mo se desea abrir dicho archivo. Lectura de archivo Una vez abierto el archivo, es posible leer el archivo. Existen varias [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[46],"tags":[71,78,80,83,87,89],"class_list":["post-1110","post","type-post","status-publish","format-standard","hentry","category-php","tag-eof","tag-fclose","tag-file","tag-fopen","tag-fread","tag-fwrite"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts\/1110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/comments?post=1110"}],"version-history":[{"count":0,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/posts\/1110\/revisions"}],"wp:attachment":[{"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/media?parent=1110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/categories?post=1110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iscodigo.com\/blog\/wp-json\/wp\/v2\/tags?post=1110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}