Pergunta

usando este código

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

i pode exibir os contants de qualquer arquivo txt na pasta o problema é toda a formatação e assim por diante a partir do arquivo txt é ignorado

os olhares de arquivo txt como

#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 o resultado eu recebo olhares como

#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
Foi útil?

Solução

Os padrões implode para uma cadeia vazia. Você deve chamar implode algo como isto:

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

Outras dicas

Você tem que adicionar elementos HTML de quebra de linha para as quebras de linha físicos. Você pode usar a nl2br função para fazer isso:

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

Além disso eu usaria o href="http://docs.php.net/file_get_contents" rel="noreferrer"> função file_get_contents ao invés da combinação de file e implode.

Se isto não é parte de um documento HTML, você precisa mudar o tipo de conteúdo:

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

Se é parte de um documento HTML, basta fazer o seguinte:

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

Como alternativa, você pode substituir newlines com quebras:

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

incorporar o conteúdo do arquivo de texto entre <pre></pre> etiquetas

Como várias das outras respostas mencionado, depende muito da página em que você está exibindo a saída.

Raw saída Texto

Se você não está adicionando qualquer outro conteúdo ou HTML para a página. Basta alterar o cabeçalho HTTP Content-Type para "text / plain"; isto é:

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

Como sempre, os cabeçalhos HTTP devem ser enviados antes qualquer conteúdo é enviado para o navegador.

(X) HTML Output

Substituir \n está com <br/> irá não problemas correção espaços em branco de truncamento; isto é, a remoção dos espaços adjacentes e / ou abas. A maneira mais fácil de contornar este problema, também como mencionado anteriormente, é usar a tag <pre> para incluir o conteúdo do arquivo. Infelizmente, isso não é suficiente para satisfazer XHTML. Há uma série de símbolos que são inválidos em XML a menos que eles sejam devidamente escapou, incluindo nomeadamente:. &, < e >

Felizmente, este é também um reparo fácil, utilizando o 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 teve a idéia certa, passando um segundo argumento para a função implode, por isso não vou abordar isso. O que eu gostaria de salientar é que o seu próprio código echo "<br></br>"; não produz HTML válido. Se você estiver fazendo HTML e quer 2 quebras de linha, fazer echo "<br><br>"; e se você está fazendo XHTML e quer 2 quebras de linha, fazer echo "<br/><br/>";. Caso contrário, se você quiser apenas 1 linha de quebra, a tag br HTML não tem uma marca de fechamento, de modo </br> não é necessário em qualquer caso.

escrever seu texto em um arquivo .txt e redirecionamento para url correspondente a esse arquivo

exemplo php código

conteúdo de allow.txt são

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

conteúdo de deny.txt são

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

conteúdo do arquivo 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");
?> 

Ou você poderia simplesmente colocá-lo em uma área de texto como este:

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

Mas só se você pode e ao que parece certo.

file() retorna um array com as linhas do arquivo.

Se você implodir aqueles sem cola não haverá quebras de linha em tudo.

Assim, ou obter o conteúdo não modificada usando file_get_contents() (que lhe dá uma string), ou cola o implode com nova linha ou

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top