1

最初に私のスクリプトを見てください:

<?php
$list=file_get_contents('txt.txt');
$name=explode('\r\n',$list); //file exploding by \n because list is one under one
foreach($name as $i1){
     echo ($i1);
     echo '</br>';
}
?>

それは私の結果を示しています(リストによると):

morgan daniel martin sopie tommy

しかし、私は</br>それが表示されているに違いないように使用しました:

morgan 
daniel 
martin 
sopie 
tommy

しかし、多分私は何かが欠けています。

4

3 に答える 3

2

この状況では、使用する方が良いpreg_replaceです...よく理解していないので、以下のトリックを使用できます...以下のコードを参照してください...

<?php
$list=file_get_contents('txt.txt');
echo implode('<br>',explode(' ',$list));
?>

HTML:

morgan<br>daniel<br>martin<br>sopie<br>tommy

出力プレビュー:

morgan
daniel
martin
sopie
tommy

最後にも休憩が必要な場合は...以下を使用してください...

echo implode('<br>',explode(' ',$list)).'<br>';
于 2012-11-26T05:46:47.737 に答える
1

explode()指定された境界文字列に従って分割されるため、すべての空白文字を含める必要があります。

実行をオンラインで見ることができます

preg_split() で正規表現パターン "\s" - 空白文字クラスで使用できる正規表現を使用することをお勧めします

---edited---
//$list = $list = preg_replace('<br>',' ',$list);; // replace the <br> with space
$list = str_replace('<br>',' ',$list); //better than preg_replace as regex dont 
                                       //  wok better for html tags

---EOF edited---
$name = preg_split('/\s+/',$list); 

echo '<pre>';
print_r($name);
echo '</pre>';

-----------o/p---------

配列
(
    [0] => モーガン
    [1] => ダニエル
    [2] => マーティン
    [3] =>ソピー
    [4] => トミー
)

ノート:

ハードコードされた文字列関数であるため、置換します。

正規表現は、正規表現文字列を解析する必要があるため ( RegexOptions.Compiledを設定した場合でも)、正規表現文字列で実行し、結果の文字列を作成する必要があるため、時間がかかりますしかし、本当に確実にしたい場合は、各反復を 100 万回反復子で実行し、結果の時間を計ってください。

これを通過します:

短縮文字クラス(\s)

preg_split

于 2012-11-26T05:39:52.463 に答える
1

fileドキュメントの行をループするには、代わりにphp を使用します。

http://www.php.net/manual/en/function.file.php

于 2012-11-26T05:37:07.450 に答える