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 ";
}
?>
					
				
© IQSystems 2023