Frage

mit diesem Code

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

ich kann die Inhalte auch jede txt-Datei in dem Ordner anzuzeigen das Problem ist, alle Formatierungen und so weiter aus der txt-Datei übersprungen

die txt-Datei sieht aus wie

#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 das Ergebnis bekomme ich aussehen wie

#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
War es hilfreich?

Lösung

Die implode Standardwerte auf einen leeren String. Sie sollten implode etwas wie folgt aufrufen:

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

Andere Tipps

Sie müssen HTML-Zeilenumbruch Elemente zu den physikalischen Zeilenumbrüche hinzufügen. Sie könnten die nl2br Funktion verwenden, das zu tun:

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

Außerdem würde ich die file_get_contents Funktion eher als die Kombination von file und implode.

Wenn das nicht Teil eines HTML-Dokument ist, müssen Sie den Inhaltstyp ändern:

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

Wenn es Teil eines HTML-Dokument ist, gerade dies tun:

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

Alternativ können Sie Zeilenumbrüche mit Pausen ersetzen:

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

einbetten die Textdatei Inhalt zwischen <pre></pre> Tags

Wie einige der anderen Antworten erwähnt, hängt stark von der Seite, in dem Sie die Ausgabe sind angezeigt wird.

Raw Textausgabe

Wenn Sie keinen anderen Inhalt oder HTML zu der Seite hinzufügen. Ändern Sie einfach den HTTP Content-Type-Header "text / plain"; das heißt:

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

Wie immer HTTP-Header gesendet werden müssen vor alle Inhalte an den Browser gesendet wird.

(X) HTML-Ausgabe

\n ist mit <br/> Ersetzen wird nicht fix Leerzeichen Abschneiden Fragen; das heißt, die Entfernung von benachbarten Räumen und / oder Tabulatoren. Der einfachste Weg, dies zu umgehen, auch wie bereits erwähnt, ist den <pre>-Tag zu verwenden, um die Inhalte der Datei zu umschließen. Leider ist dies XHTML zu befriedigen nicht genug. Es gibt eine Reihe von Symbolen, die in XML ungültig sind, wenn sie nicht richtig übersetzt werden, darunter insbesondere:. &, < und >

Zum Glück ist dies auch eine einfache Lösung, die str_replace Methode:

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

Peter Stuifzand hatte die richtige Idee, ein zweites Argument für die implodieren Funktion übergeben, so werde ich nicht ansprechen. Was ich darauf hinweisen, wird ist, dass Sie Ihre eigenen echo "<br></br>"; Code nicht gültig HTML erzeugt. Wenn Sie HTML tun und wollen 2 Zeilenumbrüche tun echo "<br><br>"; und wenn Sie tun, XHTML und wollen 2 Zeilenumbrüche tun echo "<br/><br/>";. Andernfalls, wenn Sie nur 1 Zeilenumbruch wollen, wird der HTML-br-Tag kein abschließendes Tag haben, so </br> ist in beiden Fällen nicht erforderlich.

schreiben Sie Ihren Text in einer TXT-Datei und leitet auf diese Datei mit url entsprechenden

PHP-Beispielcode

Inhalt allow.txt sind

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

Inhalt deny.txt sind

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

Inhalt der PHP-Datei

<?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");
?> 

Oder man könnte es nur in einen Textbereich wie folgt aus:

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

Aber nur, wenn Sie können, und es stellt sich heraus, rechts.

file() gibt einen Array mit den Zeilen der Datei.

Wenn Sie die ohne Leim implodieren es überhaupt keine Zeilenumbrüche sein.

Also, entweder den Inhalt erhalten unmodifizierten mit file_get_contents() (die Sie einen String gibt) oder die implodieren mit Newline kleben oder in

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top