我有一个简单的文本文件(见下文)。
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/>';
}
没有错误,但是它没有正确执行。
答案 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";
}