Получить первую строку строки в PHP - PullRequest
36 голосов
/ 01 февраля 2012

В PHP 5.3 есть хорошая функция , которая, кажется, делает то, что я хочу:

strstr(input,"\n",true)

К сожалению, на сервере работает PHP 5.2.17, а необязательный третий параметр strstr недоступен. Есть ли способ добиться этого в предыдущих версиях в одну строку?

Ответы [ 10 ]

97 голосов
/ 01 февраля 2012

здесь вы идете

$str = strtok($input, "\n");

strtok() Документация

10 голосов
/ 07 ноября 2012

Уже поздно, но вы можете использовать взрыв.

<?php
$lines=explode("\n", $string);
echo $lines['0'];
?>
6 голосов
/ 01 февраля 2012
$first_line = substr($fulltext, 0, strpos($fulltext, "\n"));

или что-то около того сделало бы свое дело.Уродливо, но выполнимо.

3 голосов
/ 01 февраля 2012

попробуй

substr( input, 0, strpos( input, "\n" ) )
2 голосов
/ 01 февраля 2012

echo str_replace(strstr($input, '\n'),'',$input);

1 голос
/ 05 сентября 2015

не зависит от типа символа перевода строки.

(($pos=strpos($text,"\n"))!==false) || ($pos=strpos($text,"\r"));

$firstline = substr($text,0,(int)$pos);

$ firstline теперь содержит первую строку из текста или пустую строку, если символы разрыва не найдены (или символ разрыва является первым символом в тексте).

1 голос
/ 01 февраля 2012
list($line_1, $remaining) = explode("\n", $input, 2);

Позволяет легко получить верхнюю строку и оставленный контент, если вы хотите повторить операцию.В противном случае используйте substr как предложено.

1 голос
/ 01 февраля 2012

попробуйте это:

substr($text, 0, strpos($text, chr(10))
0 голосов
/ 07 февраля 2018

Во многих случаях при обработке строк встречаются переменные, которые начинаются с пустой строки, поэтому не забудьте оценить, действительно ли вы хотите рассмотреть белые линии в начале и конце строки или обрезать их. Также, чтобы избежать ошибок ОС, используйте PHP_EOL, используемый для нахождения символа новой строки в кросс-платформенном совместимом способе ( Когда я использую PHP-константу "PHP_EOL"? ).

$lines = explode(PHP_EOL, trim($string));
echo $lines[0];
0 голосов
/ 01 февраля 2012

Вы можете использовать strpos в сочетании с substr.Сначала вы находите позицию, в которой находится символ, а затем возвращаете эту часть строки.

$pos = strpos(input, "\n");

if ($pos !== false) {
echo substr($input, 0, $pos);
} else {
echo 'String not found';
}

Это то, что вы хотите?

le Didn 'Обратите внимание на ограничение в одну строку, так что это не применимо так, как оно есть.Вы можете объединить две функции в одну строку, как предлагали другие, или вы можете создать пользовательскую функцию, которая будет вызываться в одной строке кода, как требуется.Ваш выбор.

...