Percorrer, ler e escribir un ficheiro con PHP
febrero 19, 2021Colocar 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 ("<B> Elemento $i:</B> $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.