LEER, ESCRIBIR y PARSE DESDE/HACIA ARCHIVO DE TEXTO
Leer un archivo ***(parte 1)***
Para abrir el archivo usamos $var = fopen( archivo,tipo) tipo: r leer, w escribir. Si se trata de
leer es conveniente un if con file_exists() para evitar un error, si es un w: si existe el archivo se
sobreescribe y si no se crea.
Luego lo leemos con $cadena = fgets($var) que nos devuelve en una cadena toda la linea (el fin de linea es un
\n normalmente).
Si queremos leer todo el archivo hacemos un while(!feof($var)){...} y dentro de él las operaciones con la cadena.
- feof() nos da el end of file -
Finalmente cerramos el stream con fclose($var). Ver el ejemplo 1
Parsear un archivo (cortar en un caracter) ***(parte 2)***
Para colocar con un <li> (o en columna, etc.) todas las subcadenas que terminen en | por ejemplo,
VER comentarios del ejemplo 2:
Este código iría en el ejemplo 1 donde está; el bloque "aquí va el código"
En la primera linea substr() recorta la subcadena desde el principio (posición 0) hasta la primera ocurrencia de
"|" dada por strpos()
En la segunda linea procesamos esta cadena ( en este caso solo es un echo)
En la tercera linea substr recorta la cadena, desde el caracter siguiente a la ocurrencia de "|" (por eso +1)
hasta el final (por defecto substr()si no se le indica la terminación sigue hasta el final). y se lo asigna a
$cadena para la iteración
El while prosigue hasta que strpos() devuelve "false" por no encontrar más "|"
Fuera del loop hay que agregar un echo($cadena) porque allí; queda el resto de la cadena
Ver el ejemplo 2
Escribir un archivo ***(parte 3)***
Abrimos el archivo como en el ejemplo 1 pero con tipo "w" o "a" y capturar según convenga la existencia del
archivo (sobreescribir/crear)
"w" lo trunca pero "a" no y coloca el cursor en el eof (modo append).
Para el fin de linea usamos "\n" en linux, "\r\n" en windows y "\r" en mac
El bloque de código es simplemente fwrite($var, $cadena) con $cadena con el contenido de la linea
terminado con el "fin de linea correcto"Ver el ejemplo 3
Leer un archivo ***(parte 1)***
<?
$arch = "tec-php-rwtexto-ejemplo.txt";
if (file_exists ($arch)) {
if($conector = fopen($arch, "r")){ //no puedo abrir el .txt
while(!feof($conector)){
$cadena = fgets($conector);
*****************************
Aquí va el código con $cadena
*****************************
}
fclose($conector);
}else{
echo "No se puede abrir el archivo ";
}
}else{
echo "No existe el archivo ";
}
?>
Leer y parsear un archivo ***(parte 2)***
<div> Este es el contenido del archivo "tec-php-rwtexto-ejemplo.txt"</div>
<?
$arch = "tec-php-rwtexto-ejemplo.txt";
if (file_exists ($arch)) {
if($conector = fopen($arch, "r")){ //no puedo abrir el .log
while(!feof($conector)){
$cadena = fgets($conector);
echo "<ul>";
while(strpos($cadena, "|")){
$subcadena= substr($cadena,0,strpos($cadena, "|"));
echo "<li>".$subcadena."</li>";
$cadena = substr($cadena,strpos($cadena, "|")+1);
}
echo "<li>".$cadena."</li>"; // muestra la ultima subcadena !!!
echo "</ul>";
}
fclose($conector);
}else{
echo "No se puede abrir el archivo ";
}
}else{
echo "No existe el archivo ";
}
?>
Escribir en un archivo ***(parte 3)***
<?
$arch = "tec-php-rwtexto-ejemplo.txt";
if (file_exists ($arch)) { //no existe el .txt
if($conector = fopen($arch, "w")){ //no puedo abrir el .txt
$cadena_a_escribir = $cadena . "\n";
$test = fwrite($conector,$cadena_a_escribir);
fclose($errorfile);
}else{
echo "No se puede abrir el archivo ";
}
}else{
echo "El archivo no existe y va a ser creado ";
}
?>