假设我有一个字符串"blbl\nblbl etc"
。我知道我应该从位置$pos
开始。我必须选择一切到最后一行。我不能用这个:
substr($string, $pos, strpos($string, "\n", $pos))
Mac不使用\n
作为分隔符。我该怎么办?
答案 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);