使用PHP从文本文件中分割出换行符内容

14

我有一个包含多个电子邮件地址的文本文件,格式如下:

test@test.com
test2@test.com

我已经用

$result = file_get_contents("tmp/emails.txt");
成功打开了它,但不知道如何将这些电子邮件地址存储到一个数组中。实际上,我可以使用 "explode" 函数,但是如何分隔换行符呢?感谢您提前给出任何答案!


1
以下答案是理想的;但是作为参考,您可以使用带有换行符的explode函数,表示为\n。(这也可能是\r\n,具体取决于您使用的是Windows还是Linux)。 - user11977
3个回答

35

使用file()读取文件,将得到一个包含文件每一行的数组。

$emails = file('tmp/emails.txt');

如需不在每个电子邮件地址后添加换行符,请使用FILE_IGNORE_NEW_LINES标志,如需跳过空行,请使用FILE_SKIP_EMPTY_LINES标志:

$emails = file('tmp/emails.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

对第二个示例执行var_dump($emails)会得到以下结果:

array(2) {
  [0]=>
  string(13) "test@test.com"
  [1]=>
  string(14) "test2@test.com"
}

2
虽然这个方法可以运行,但它没有考虑基于Windows的换行符。使用preg_split更可靠。 - Jubair

11
$lines = preg_split('/\r\n|\n|\r/', trim(file_get_contents('file.txt')));

2

听起来很疯狂,但在双引号("")内键入 returnenter 可以分隔一行。为了更清晰,可以输入以下内容:

explode("", "Stuff to delimit");

只需在 "" 的中间按下回车键,即可得到:

explode("

", "stuff to delimit");

它运行良好。可能不太常规,只能在Linux上使用。但它可以运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接