0

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

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

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

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

6 回答 6

2

如果有帮助,获取文件内容file()会自动为您分割成几行。

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

于 2012-04-17T15:43:30.143 回答
2

抓住每一行:

$eachLine = explode( PHP_EOL, $file_text );

然后你的正常子字符串将抓住一切。如果它像您的示例一样全部用冒号分隔,那么您可以展开以提取字符串中所有数据的 key => value 数组

// 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]);

}

这将为您提供一个 key => value 数组中的所有数据$data

于 2012-04-17T15:45:14.840 回答
0

尝试 :

$lines = explode( PHP_EOL, $line_text );

然后循环遍历每一行:

foreach( $lines as $line ) 
{
    //do something
}
于 2012-04-17T15:43:58.777 回答
0

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

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

选择:

list($author_line) = explode("\n", $file_text, 1);
于 2012-04-17T15:44:48.240 回答
0
$author_line = substr($file_text, 0, strpos("\n"));

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

更正确的编码为:

$author_line = substr($file_text, 0, strpos(PHP_EOL));
于 2012-04-17T15:44:52.993 回答
-1
$author_line = explode("\n", $file_text );
于 2012-04-17T15:45:17.260 回答