Domanda

utilizza questo codice

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

posso visualizzare il contants di qualsiasi file txt nella cartella il problema è che tutti gli elementi di formattazione e così via dal file txt è saltato

il file txt sembra

#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

io mi sembra

#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
È stato utile?

Soluzione

I valori di default implode a una stringa vuota. Si dovrebbe chiamare implode qualcosa di simile:

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

Altri suggerimenti

È necessario aggiungere elementi di interruzione di riga HTML per le interruzioni di riga fisici. È possibile utilizzare la funzione di nl2br per farlo:

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

Inoltre vorrei utilizzare il href="http://docs.php.net/file_get_contents" rel="noreferrer"> file_get_contents funzione piuttosto che la combinazione di file e implode.

Se questo non è parte di un documento HTML, è necessario modificare il tipo di contenuto:

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

Se si fa parte di un documento HTML, basta fare questo:

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

In alternativa si può sostituire a capo con interruzioni:

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

incorporare il contenuto del file di testo tra <pre></pre> tag

Come molte delle altre risposte accennato, molto dipende dalla pagina in cui si visualizza l'output.

Un Testo Crudo Di Uscita

Se non siete aggiunta di qualsiasi altro contenuto o HTML per la pagina.Basta cambiare l'intestazione HTTP Content-Type "text/plain";che è:

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

Come sempre, le intestazioni HTTP, deve essere inviato prima ogni contenuto viene inviato al browser.

(X)HTML di Output

Sostituzione \n's con <br/> sarà non fix spazi troncamento problemi;che è, la rimozione degli spazi adiacenti e/o schede.Il modo più semplice per ottenere intorno a questo, anche, come accennato in precedenza, è quello di utilizzare la <pre> tag per racchiudere il contenuto del file.Purtroppo, questo non è sufficiente a soddisfare XHTML.Ci sono un certo numero di simboli che non sono validi in XML se non sono adeguatamente sfuggito, in particolare, di cui: &, <, e >.

Per fortuna, questa è anche una soluzione semplice utilizzando il str_replace metodo:

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

Peter Stuifzand avuto l'idea giusta, passando un secondo argomento della funzione implode, quindi non mi affrontare questo problema. Ciò che io voglio sottolineare è che il codice proprio echo "<br></br>"; non produce HTML valido. Se stai facendo HTML e vogliono 2 interruzioni di riga, fare echo "<br><br>"; e se si sta facendo XHTML e vogliono interruzioni di linea 2, fanno echo "<br/><br/>";. In caso contrario, se desideri solo 1 interruzione di linea, il tag br HTML non ha un tag di chiusura, in modo da </br> non è necessaria in entrambi i casi.

scrivere il testo in un file txt e reindirizzare alla url corrispondente a quel file

php codice di esempio

contenuto di allow.txt sono

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

contenuto di deny.txt sono

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

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

Oppure si può semplicemente mettere in una textarea in questo modo:

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

Ma solo se si può e si scopre a destra.

file() restituisce un array con le linee del file.

Se implodere quelli senza colla non ci saranno interruzioni di linea a tutti.

Quindi, o ottenere il contenuto non modificati utilizzando file_get_contents() (che vi dà una stringa), o incollare l'implodere con la nuova linea o

scroll top