使用php显示.txt文件的内容

时间:2009-05-29 21:10:06

标签: php text-files implode

使用此代码

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

我可以在文件夹中显示任何txt文件的内容 问题是从txt文件中删除所有格式化等等

txt文件看起来像

#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

我得到的结果是

#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

9 个答案:

答案 0 :(得分:9)

implode默认为空字符串。你应该拨打implode这样的话:

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

答案 1 :(得分:8)

您必须将HTML换行元素添加到物理换行符。您可以使用nl2br function执行此操作:

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

此外,我会使用file_get_contents function而不是fileimplode的组合。

答案 2 :(得分:4)

如果这不是HTML文档的一部分,则需要更改内容类型:

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

如果它是HTML文档的一部分,请执行以下操作:

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

或者,您可以使用中断替换换行符:

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

答案 3 :(得分:1)

在其间嵌入文本文件内容 <pre></pre> 标签

答案 4 :(得分:1)

正如其他几个回复所提到的,它在很大程度上取决于您显示输出的页面。

原始文本输出

如果您没有向页面添加任何其他内容或HTML。只需将HTTP Content-Type标题更改为“text / plain”;那就是:

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

与往常一样,在将任何内容发送到浏览器之前,必须先发送的HTTP标头。

(X)HTML输出

\n替换<br/>修复空白截断问题;也就是说,移除相邻的空间和/或标签。如前所述,解决此问题的最简单方法是使用<pre>标记来包含文件的内容。不幸的是,这还不足以满足XHTML。 XML中有许多符号无效,除非它们被正确转义,尤其包括:&<>

值得庆幸的是,使用str_replace方法也可以轻松解决此问题:

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

答案 5 :(得分:0)

file()返回一个包含文件行的数组。

如果你破坏那些没有胶水的人,根本就没有换行符。

所以,要么使用file_get_contents()(它给你一个字符串)来修改内容,要么用新行或者

粘合内爆

答案 6 :(得分:0)

Peter Stuifzand有正确的想法,将第二个参数传递给implode函数,所以我不会解决这个问题。我要指出的是,您自己的echo "<br></br>";代码不会生成有效的HTML。如果您正在使用HTML并想要2个换行符,请执行echo "<br><br>";,如果您正在执行XHTML并想要2个换行符,请执行echo "<br/><br/>";。否则,如果您只想要1个换行符,则HTML br标记没有结束标记,因此在任何一种情况下都不需要</br>

答案 7 :(得分:0)

将文本写入.txt文件并重定向到与该文件对应的网址

php示例代码

allow.txt的内容是

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

deny.txt的内容是

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

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

答案 8 :(得分:0)

或者你可以把它放到像这样的文本区:

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

但只有你能做到并且事实证明是正确的。