功能会爆炸简单的文本文件

时间:2012-12-23 06:37:15

标签: php explode

我有一个简单的文本文件(见下文)。

abc|1356243309
zzz|1356239986
yyy|1356242423

我想在|之前简单地提取所有名称。所以输出应该如下:

abc
zzz
yyy

以下是我尝试使用的字符串。我也试过文件('visitornames.txt')等。我不确定我做错了什么:(。尝试了很多东西。

$string = file_get_contents('visitornames.txt');
$names = explode('|', $string);
foreach($names as $key) {

echo $key . '"<br/>';

}

没有错误,但是它没有正确执行。

2 个答案:

答案 0 :(得分:5)

我会使用file-function而不是file_get_contents。它将文件作为数组返回,其中每一行都是自己的项目。然后你可以foreach文件内容数组。您正在寻找的变量是该行的第一部分,这就是为什么您只能回显$ names [0]。

$file = file('visitornames.txt');
foreach ($file AS $line) {
    $names = explode('|', $line);
    echo $names[0] . '<br/>';
}

答案 1 :(得分:0)

您可以使用file函数提取文件的所有行,然后获取爆炸的每个第一部分并将其分配给结果:

$names = array();
foreach (file('visitornames.txt') as $line)
{
    list($names[]) = explode('|', $line, 2);
}

或者,SplFileObject类似,但您可以更轻松地从中扩展:

class Names extends SplFileObject
{
    public function current() {
        list($name) = explode('|', parent::current(), 2);
        return $name;
    }
}

$names = new Names('visitornames.txt');

foreach ($names as $name)
{
    echo $name, "<br />\n";
}
相关问题