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

使用 phpfile来循环遍历文档的行:

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

于 2012-11-26T05:37:07.450 回答
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),然后在正则表达式字符串中执行它,然后制定结果字符串。但是,如果您真的想确定,请在百万次迭代器中执行每次迭代并对结果进行计时。

通过这个:

速记字符类(\s)

preg_split

于 2012-11-26T05:39:52.463 回答