explode()不使用分隔符<br/>

时间:2012-11-26 05:31:40

标签: php arrays explode

首先看看我的剧本:

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

但也许我错过了什么。

3 个答案:

答案 0 :(得分: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>';

答案 1 :(得分:1)

使用php file代替遍历doc的行:

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

答案 2 :(得分:1)

explode()按照给定的边界字符串进行拆分,因此您必须包含所有空白字符。

您可以找到执行see online

最好去正则表达式,它可以与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 ---------

Array
(
    [0] => morgan
    [1] => daniel
    [2] => martin
    [3] => sopie
    [4] => tommy
)
  

请注意:

替换,因为它是一个硬编码的字符串函数。

正则表达式需要更长时间,因为它需要解析正则表达式字符串(即使您设置了RegexOptions.Compiled),然后在正则表达式字符串中执行它,然后制定结果字符串。但是如果你真的想确定,请在百万次迭代器中执行每次迭代并为结果计时。

通过这个:

Shorthand Character Classes(\s)

preg_split