substr()到EOL?

时间:2012-04-17 15:40:32

标签: php substr eol

如何获取一行的全部内容?我怀疑substr()不是答案。

Authors: Mr. Foo, Mr. Bar
Date: Jan 1, 1970
etc...

在我的$file_text字符串中,我有类似于上面的内容。我正在寻找这样的事情:

$author_line = substr($file_text, 0, EOL);

6 个答案:

答案 0 :(得分:2)

如果有帮助,使用file()获取文件内容会自动将其剪切为一行。

否则,请尝试strstr($file_text,PHP_EOL,true)

答案 1 :(得分:2)

用这个抓住每一行:

$eachLine = explode( PHP_EOL, $file_text );

那么你的普通子串就会抓住所有东西。如果它像你的例子一样被冒号分隔,那么你可以爆炸来提取一个键=>字符串中所有数据的值数组

// Grab each Line
$eachLine = explode( PHP_EOL, $file_text );
$data= array();

foreach($eachLine as $line) {

    $line = explode($line, ':');

    $data[trim($line[0])] = trim($line[1]);

}

这会给你一个键=> $data中所有数据的值数组。

答案 2 :(得分:0)

尝试:

$lines = explode( PHP_EOL, $line_text );

然后遍历每一行:

foreach( $lines as $line ) 
{
    //do something
}

答案 3 :(得分:0)

获取第一行(根据您的选择替换行尾分隔符):

$author_line = strtok($file_text, "\n");

替代:

list($author_line) = explode("\n", $file_text, 1);

答案 4 :(得分:0)

$author_line = substr($file_text, 0, strpos("\n"));

这将抓住第一行的所有内容,不包括行尾。您将不得不考虑Windows上的\ r \ n与Unix上的\ n。

更正确地编码为:

$author_line = substr($file_text, 0, strpos(PHP_EOL));

答案 5 :(得分:-1)

$author_line = explode("\n", $file_text );