Выберите от позиции до конца строки в строке - PullRequest
9 голосов
/ 17 марта 2011

Допустим, у меня есть строка "blbl\nblbl etc".Я знаю, что я должен начать с позиции $pos.Я должен выбрать все до конца строки.Я не могу использовать это:

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

Mac не использует \n в качестве разделителя.Что мне делать?

Ответы [ 4 ]

17 голосов
/ 13 октября 2012

Должно быть:

substr($string, $pos, ( strpos($string, PHP_EOL, $pos) ) - $pos);
8 голосов
/ 17 марта 2011

Вы можете попробовать константу PHP_EOL:

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

Она содержит последовательность символов конца строки ОС, в которой выполняется скрипт.

2 голосов
/ 17 марта 2011

Передайте строку через функцию, которая сначала заменяет \ r \ n или \ r на \ n.Конечно, это стоит делать, если только вы на самом деле не хотите сохранить специфичные для платформы окончания строк.

FWIW Mac все равно теперь использует \ n.

1 голос
/ 17 марта 2011

Если вам нужно обработать каждую отдельную строку в строке, вы всегда можете разбить строку на массив.Вы можете сделать это с помощью preg_split () таким образом, чтобы идентифицировать не только системный символ конца строки.

$lines = preg_split("/\r\n|\n|\r/", $string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...