Percorrer, ler e escribir un ficheiro con PHP

febrero 19, 2021 Por admin 0

Colocar o punteiro de acceso ao ficheiro na primeira posición.

rewind(file);

Mover o punteiro tantas posicións.

fseek(file,positions);
Cara adiante (si o segundo argumento é un número positivo) ou cara atrás (si é un número negativo) como se indique no seu segundo argumento.


Coñecer en que posición do ficheiro está o punteiro.

ftell(file);

Detectar se sobrepasouse a última posición do ficheiro.

feof(file);

Ler unha cadea dun ficheiro aberto.

fread("file_name",number);

O segundo parámetro indica os caracteres a ler.

A función fgets() fai exactamente o mesmo ca función fread() e leva os mesmos parámetros como argumentos. Só diferenciase en que a función fgets() só le unha cadea que, como máximo, abarca ata que atope a marca de final de liña (retorno de carro). Por iso, si o número do segundo parámetro é superior aos caracteres dunha liña, a cadea comprenderá só o texto da liña.
Con esta función incluída dentro dun bucle podemos ler liña a liña un ficheiro deste xeito:
rewind("Ficheiros_3.txt");
while (!feof("Ficheiros_3.txt"))
{
$linea=fgets("Ficheiros_3.txt",256);
echo "<B>$linea </B>";
}

Convén advertir que, cando se executan as funcións anteriores, a cadea contén unha posición menos que a indicada no argumento, é dicir, si poñemos 10 como lonxitude da cadea, amósanse 9 caracteres. Isto débese aos códigos de salto de liña, que léense tamén, aínda que non se vexan.

A función file() tamén emprégase para ler un ficheiro e asignar o texto de cada liña a un array. A primeira liña colocase como elemento 0 e así sucesivamente. Neste caso o identificador que se pasa como argumento é o propio nome do ficheiro e a función count() permite saber cantos elementos ten o array para poder percorrela posteriormente.

Exemplo:
$MeuArray=file("Ficheiros_3.txt");
for($i=0;$iprint ("&ltB&gt Elemento $i:&lt/B&gt $MeuArray[$i]");
}


Escribir no ficheiro especificado unha cadea de caracteres.

fputs(file,string);

O ficheiro ten que estar aberto. Esta función devolve o valor lóxico True si se puido realizar a operación sen problema ou False se non se puido.

A función fwrite() é cuspidiña a fputs() e a súa sintaxe leva os mesmos argumentos.