5

このコードを使用する

<?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
4

9 に答える 9

9

implodeデフォルトは空の文字列です。implode次のように呼び出す必要があります。

  $string = implode("<br>", $contents);
于 2009-05-29T21:13:17.753 に答える
8

HTMLの改行要素を物理的な改行に追加する必要があります。nl2brこの関数を使用して、次のことを行うことができます。

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

さらに、との組み合わせではなく、file_get_contents関数を使用します。fileimplode

于 2009-05-29T21:13:40.933 に答える
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);
}
?>
于 2009-05-29T21:20:34.663 に答える
1

<pre></pre> タグ間にテキストファイルのコンテンツを埋め込む

于 2009-05-29T21:13:10.763 に答える
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>';
于 2009-05-31T00:38:45.897 に答える
0

テキストを .txt ファイルに書き込み、そのファイルに対応する URL にリダイレクトします

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");
?> 
于 2014-10-13T06:18:18.923 に答える
0

file()ファイルの行を含む配列を返します。

接着剤なしで内破すると、改行はまったくありません。

したがって、(文字列を提供する)を使用して変更されていないコンテンツを取得するかfile_get_contents()、内破を改行または

于 2009-05-29T21:16:47.620 に答える
0

Peter Stuifzand は implode 関数に 2 番目の引数を渡すという正しい考えを持っていたので、それについては説明しません。私が指摘したいのは、あなた自身のecho "<br></br>";コードは有効な HTML を生成しないということです。HTML を実行していて 2 つの改行が必要なecho "<br><br>";場合は を実行し、XHTML を実行していて 2 つの改行が必要な場合は を実行しますecho "<br/><br/>";。それ以外の場合、改行が 1 つだけ必要な場合は、HTML の br タグに終了タグ</br>がないため、どちらの場合も必要ありません。

于 2009-05-29T21:20:08.080 に答える
0

または、次のようにテキストエリアに配置することもできます。

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

ただし、それが可能で、それが正しいことが判明した場合に限ります。

于 2015-04-21T16:49:37.557 に答える