Pregunta

utilizando el código

<?php
foreach (glob("*.txt") as $filename) {   
    $file = $filename;
    $contents = file($file); 
    $string = implode($contents); 
    echo $string;
    echo "<br></br>";
}
?>

puedo mostrar los contants de cualquier archivo txt en la carpeta el problema es todo el formateo y así sucesivamente desde el archivo txt se omite

el archivo txt parece

#nipponsei @ irc.rizon.net presents:

Title: Ah My Goddess Sorezore no Tsubasa Original Soundrack
Street Release Date: July 28, 2006

------------------------------------

Tracklist:

1. Shiawase no Iro On Air Ver
2. Peorth
3. Anata ni Sachiare
4. Trouble Chase
5. Morisato Ka no Nichijou
6. Flying Broom
7. Megami no Pride
8. Panic Station
9. Akuryou Harai
10. Hore Kusuri
11. Majin Urd
12. Hild
13. Eiichi Soudatsusen
14. Goddess Speed
15. Kaze no Deau Basho
16. Ichinan Satte, Mata...
17. Eyecatch B
18. Odayaka na Gogo
19. Heibon na Shiawase
20. Kedarui Habanera
21. Troubadour
22. Awate nai de
23. Ninja Master
24. Shinobi no Okite
25. Skuld no Hatsukoi
26. Kanashimi no Yokan
27. Kousaku Suru Ishi
28. Dai Makai Chou Kourin
29. Subete no Omoi wo Mune ni
30. Invisible Shield
31. Sparkling Battle
32. Sorezore no Tsubasa
33. Yume no Ato ni
34. Bokura no Kiseki On Air Ver

------------------------------------

Someone busted in, kicked me and asked why there was no release
of it. I forgot! I'm forgetting a lot...sorry ;_;

minglong

i el resultado me sale se parece a

#nipponsei @ irc.rizon.net presents: Title: Ah My Goddess Sorezore no Tsubasa Original Soundrack Street Release Date: July 28, 2006 ------------------------------------ Tracklist: 1. Shiawase no Iro On Air Ver 2. Peorth 3. Anata ni Sachiare 4. Trouble Chase 5. Morisato Ka no Nichijou 6. Flying Broom 7. Megami no Pride 8. Panic Station 9. Akuryou Harai 10. Hore Kusuri 11. Majin Urd 12. Hild 13. Eiichi Soudatsusen 14. Goddess Speed 15. Kaze no Deau Basho 16. Ichinan Satte, Mata... 17. Eyecatch B 18. Odayaka na Gogo 19. Heibon na Shiawase 20. Kedarui Habanera 21. Troubadour 22. Awate nai de 23. Ninja Master 24. Shinobi no Okite 25. Skuld no Hatsukoi 26. Kanashimi no Yokan 27. Kousaku Suru Ishi 28. Dai Makai Chou Kourin 29. Subete no Omoi wo Mune ni 30. Invisible Shield 31. Sparkling Battle 32. Sorezore no Tsubasa 33. Yume no Ato ni 34. Bokura no Kiseki On Air Ver ------------------------------------ Someone busted in, kicked me and asked why there was no release of it. I forgot! I'm forgetting a lot...sorry ;_; minglong
¿Fue útil?

Solución

Los implode por defecto es una cadena vacía. Debe llamar implode algo como esto:

  $string = implode("<br>", $contents);

Otros consejos

Hay que añadir elementos de saltos de línea HTML para los saltos de línea físicas. Se podría utilizar la función de nl2br para hacer esto:

foreach (glob("*.txt") as $filename) {
    echo nl2br(file_get_contents($filename));
    echo "<br></br>";
}

Además me gustaría utilizar la href="http://docs.php.net/file_get_contents" rel="noreferrer"> función file_get_contents en lugar de la combinación de file y implode.

Si esto no es parte de un documento HTML, es necesario cambiar el tipo de contenido:

<?php
header("Content-Type: text/plain");
foreach (glob("*.txt") as $filename) { 
  readfile($filename);
}
?>

Si es parte de un documento HTML, simplemente hacer esto:

<pre>
<?php
foreach (glob("*.txt") as $filename) { 
  readfile($filename);
}
?>
</pre>

Como alternativa se puede reemplazar con saltos de línea se rompe:

<?php
foreach (glob("*.txt") as $filename) { 
  $str = file_get_contents($filename);
  echo preg_replace('!\r?\n!', '<br>', $str);
}
?>

incrustar el contenido del archivo de texto entre <pre></pre> las etiquetas

Como varias de las otras respuestas mencionadas, que depende en gran medida de la página en la que se esté viendo la salida.

Salida de texto sin

Si no va a añadir cualquier otro contenido o HTML para la página. Basta con cambiar la cabecera HTTP Content-Type "text / plain"; es decir:

header('Content-Type: text/plain');
echo file_get_contents('path/to/file');

Como siempre, las cabeceras HTTP deben enviarse antes contenido se envía al navegador.

(X) de salida HTML

Sustitución de \n con <br/> será no corregir los problemas de truncamiento de espacios en blanco; es decir, la eliminación de espacios y / o lengüetas adyacentes. La forma más fácil de evitar esto, también se ha mencionado anteriormente, es utilizar la etiqueta <pre> para encerrar el contenido del archivo. Por desgracia, esto no es suficiente para satisfacer XHTML. Hay una serie de símbolos que no son válidos en XML a menos que se escaparon adecuadamente, entre los que destacan:. &, < y >

Afortunadamente, esto también es una solución fácil utilizando el método str_replace:

$raw = file_get_contents('path/to/file');
echo '<pre>';
echo str_replace($raw, array('>','<','&','%'), array('&gt;','&lt;','&amp;','&#37;'));
echo '</pre>';

Peter Stuifzand tenía la idea correcta, pasando un segundo argumento de la función implosión, por lo que no se ocupará de eso. Lo que voy a señalar es que su propio código echo "<br></br>"; no produce HTML válido. Si estás haciendo HTML y quiere 2 saltos de línea, hacer echo "<br><br>"; y si está haciendo XHTML y quieren rompe la línea 2, hacen echo "<br/><br/>";. De lo contrario, si sólo desea 1 salto de línea, la etiqueta br HTML no tiene una etiqueta de cierre, por lo </br> no es necesario en cualquier caso.

escribir el texto en un archivo .txt y redirigir a la URL correspondiente a ese archivo

php código de ejemplo

contenido de allow.txt son

Authorized=True
Duration=1
OutputAnalog=NO_PLAYBACK
OutputDigital=NO_PLAYBACK

contenido de deny.txt son

Authorized=False
Duration=0
OutputAnalog=NO_PLAYBACK
OutputDigital=NO_PLAYBACK

contenido del archivo PHP

<?php
$user = $_REQUEST['username'];
$pass = $_REQUEST['password'];
$contentId = $_REQUEST['contentId'];
ob_start(); // ensures anything dumped out will be caught

 // do stuff here
allowUrl = 'http://localhost/allow.txt'; // this can be set based on whatever
$denyUrl = 'http://localhost/deny.txt';
// clear out the output buffer
while (ob_get_status())
{
    ob_end_clean();
}

// no redirect
if($user == "xyz" && $pass == "xyz")
header( "Location: $allowUrl" );
else
header("Location: $denyUrl");
?> 

O usted podría ponerlo en un área de texto como esto:

<?
$file = 'file.txt';
$contents = file($file); 
$string = implode("",$contents); 
echo '<textarea readonly style="width:100%; height:200px;">';
echo $string;
echo "</textarea><br></br>";
?>

Pero sólo si es posible y resulta que la derecha.

file() devuelve una matriz con las líneas del archivo.

Si los implosionar sin pegamento no habrá saltos de línea en absoluto.

Así que, o bien obtener los contenidos sin modificación mediante file_get_contents() (que le da una cadena), o pegar la implosión con salto de línea o

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top