从字符串中的位置到行尾选择

时间:2011-03-16 22:55:27

标签: php string

假设我有一个字符串"blbl\nblbl etc"。我知道我应该从位置$pos开始。我必须选择一切到最后一行。我不能用这个:

substr($string, $pos, strpos($string, "\n", $pos))

Mac不使用\n作为分隔符。我该怎么办?

4 个答案:

答案 0 :(得分:17)

应该是:

substr($string, $pos, ( strpos($string, PHP_EOL, $pos) ) - $pos);

答案 1 :(得分:8)

您可以尝试PHP_EOL常量:

substr($string, $pos, strpos($string, PHP_EOL, $pos));

它包含脚本运行的操作系统的行尾字符序列。

答案 2 :(得分:2)

将字符串传递给一个函数,该函数首先用\ n替换\ r \ n或\ r \ n。值得一提的是,除非你真的想保留平台特定的行结尾。

无论如何,FWIW Mac正在使用\ n。

答案 3 :(得分:1)

如果您需要处理字符串中的每一行,您始终可以将字符串拆分为数组。您可以使用preg_split()以识别系统行尾字符的方式执行此操作。

$lines = preg_split("/\r\n|\n|\r/", $string);