Domanda

Sto cercando di aprire un file di testo e l'uscita del suo contenuto con il codice qui sotto. Il file di testo include interruzioni di linea, ma quando mi associo il file sua non formattato. Come posso risolvere questo problema?

Grazie.

<html>

<head>

</head>

<body>

        $fh = fopen("filename.txt", 'r');

        $pageText = fread($fh, 25000);

        echo $pageText;


</body>

</html>
È stato utile?

Soluzione

Per convertire la riga di testo normale rompe in html interruzioni di linea, provate questo:

    $fh = fopen("filename.txt", 'r');

    $pageText = fread($fh, 25000);

    echo nl2br($pageText);

Si noti la funzione nl2br avvolgendo il testo.

Altri suggerimenti

Una linea di codice:

 echo nl2br( file_get_contents('file.txt') );

Se si desidera solo per mostrare l'output del file all'interno del codice html formattato allo stesso modo è nel file di testo si può avvolgere la sua dichiarazione di eco con una coppia di tag pre:

echo "<pre>";
echo $pageText;
echo "</pre>";

Alcune delle altre risposte sembrano promettenti a seconda di ciò che si sta cercando todo.

Prima l'eco, essere sicuri di includere

header('Content-Type: text/plain');

Per la semplice legge come questa, mi piacerebbe fare qualcosa di simile:

$fileContent = file_get_contents("filename.txt");

echo str_replace("\n","&lt;br&gt;",$fileContent);

Questo si prenderà cura di ritorno a capo e l'uscita del testo. A meno che non sto scrivendo in un file, io non uso le funzioni fopen e affini.

Spero che questo aiuti.

Stai l'output in HTML o testo normale? Se HTML provare ad aggiungere un <br> alla fine di ogni riga. per es.

while (!feof($handle)) {
  $buffer = fgets($handle, 4096); // Read a line.
  echo "$buffer<br/>";
} 

Cercando di ottenere interruzioni di riga al lavoro lettura di un file txt sul Apache2 e PHP 5.3.3 con MacOSX 10.6.6 e Camino, la echo nl2br ($ testo); non ha funzionato a destra fino a quando ho stampato la dimensione del file prima troppo. BTW non sembra avere importanza se il file .txt ha Linux / MacOSX LF o Windows CRLF interruzioni di riga o la codifica del testo è UTF-8 o Windows Latin1, Camino ottiene fuori OK.

<?php
$filename     = "/Users/Shared/Copies/refrain.txt";
$file_ptr     = fopen ( $filename, "r" );
$file_size    = filesize ( $filename );
$text         = fread ( $file_ptr, $file_size );
fclose ( $file_ptr );
echo ( "File size : $file_size bytes<br>&nbsp;<br>" );
echo nl2br ( $text );
?>

Diciamo che avete un file index.php ospitato dal server web. Si desidera inserire alcuni contenuti di file di testo su più righe in esso. Ecco come si fa:

<body>
        <div>Some multi-line message below:</div> 
        <div><?= nl2br(file_get_contents('message.txt.asc')); ?></div>
</body>

Questa parte <?= ... ?> è solo una scorciatoia, che indica al server web, che ha bisogno di essere trattata come un argomento PHP echo.

È necessario avvolgere il vostro codice PHP in <?php <YOU CODE HERE >?>, e salvarlo come .php o .php5 (dipende dal vostro apache configurato).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top