2010-11-05 25 views
29

tengo un archivo de texto con esta información en mi servidor:Leer un archivo de texto con php

Data1 
Data2 
Data3 
. 
. 
. 
DataN 

¿Cómo se lee toda la información del archivo de texto (línea por línea) usando PHP?

Respuesta

61
<?php 

$fh = fopen('filename.txt','r'); 
while ($line = fgets($fh)) { 
    // <... Do your work with the line ...> 
    // echo($line); 
} 
fclose($fh); 
?> 

Esto le dará una línea por línea leer .. leer las notas en php.net/fgets en relación con el final de los problemas con la línea de los Mac.

4

W3Schools es su amigo: http://www.w3schools.com/php/func_filesystem_fgets.asp

Y aquí: http://php.net/manual/en/function.fopen.php tiene más información sobre fopen incluyendo lo que son los modos.

Lo W3Schools dice:

<?php 
$file = fopen("test.txt","r"); 

while(! feof($file)) 
    { 
    echo fgets($file). "<br />"; 
    } 

fclose($file); 
?> 

fopen abre el archivo (en este caso test.txt con el modo 'r' que significa sólo lectura y coloca el puntero al principio del archivo)

El bucle while comprueba si está al final del archivo (feof) y mientras no está, llama a los fgets, que obtiene la línea actual donde está el puntero.

Continúa haciendo esto hasta que sea el final del archivo, y luego cierra el archivo.

7

También puede producir una matriz mediante el uso de archivo:

$array = file('/path/to/text.txt'); 
6
$filename = "fille.txt"; 
$fp = fopen($filename, "r"); 

$content = fread($fp, filesize($filename)); 
$lines = explode("\n", $content); 
fclose($fp); 
print_r($lines); 

En este código contenido completo del archivo se copia en la variable $content y luego dividirlo en una matriz con cada carácter de nueva línea en el archivo.

8

Ésta está trabajando para mí

$array = explode("\n", file_get_contents('file.txt')); 
2

intentar algo como esto:

$filename = 'file.txt'; 

$data = file($filename); 
foreach ($data as $line_num=>$line) 
{ 
    echo 'Line # <b>'.$line_num.'</b>:'.$line.'<br/>'; 
} 
1
$file="./doc.txt"; 
$doc=file_get_contents($file); 

$line=explode("\n",$doc); 
foreach($line as $newline){ 
    echo '<h3 style="color:#453288">'.$newline.'</h3><br>'; 

} 
Cuestiones relacionadas