3

我有一个文本文件,我想从其中捕获每个第一个单词:

名字|全部|01.01.55.41

别名||01.01.55.41

第三名||01.01.55.41

我正在尝试:

function get_content() {
    $mailGeteld = NULL;
        $mailGeteld = file_get_contents("content.txt");
        $mailGeteld = explode("|",$mailGeteld);
        return $mailGeteld[0];
}

但现在我只得到“名字”,我怎样才能循环它,结果是这样的:

名、名、名

4

3 回答 3

4

file逐行读取文件。

function get_content() {
        $firstWords = array();
        $file = file("content.txt"); //read file line by line
        foreach ($file as $val) {
            if (trim($val) != '') { //ignore empty lines
                $expl = explode("|", $val);
                $firstWords[] = $expl[0]; //add first word to the stack/array
            }
        }
        return $firstWords; //return the stack of words - thx furas ;D
}

echo implode(', ', get_content()); //puts a comma and a blankspace between each collected word
于 2013-06-04T19:52:25.547 回答
1

您可以使用SplFileObject

$file = new SplFileObject("log.txt", "r");
$data = array();
while(! $file->eof()) {
    $data[] = array_shift(($file->fgetcsv("|")));
}
echo implode(", ", $data);
于 2013-06-04T20:07:52.570 回答
0

您的函数在单行上运行。我建议您file_get_contents("content.txt");退出功能并为每一行迭代并每次使用您的功能。

于 2013-06-04T19:52:51.830 回答