web-dev-qa-db-ja.com

PHPの文字列の最初の行を取得する

PHP 5.3には Nice function があります。

strstr(input,"\n",true)

残念ながら、サーバーはPHP 5.2.17を実行し、strstrのオプションの3番目のパラメーターは使用できません。これを以前のバージョンで1行で実現する方法はありますか?]

38
kinokijuf

どうぞ

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

strtok() Documentation

99

遅いですが、爆発を使用できます。

<?php
$lines=explode("\n", $string);
echo $lines['0'];
?>
10
Connor Gurney
$first_line = substr($fulltext, 0, strpos($fulltext, "\n"));

またはそれについて何かがトリックを行います。 glyいが、実行可能。

6
Marc B

試してみる

substr( input, 0, strpos( input, "\n" ) )
3
Sirko

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

2
Krimo

これを試して:

substr($text, 0, strpos($text, chr(10))
1
Andrés Torres

改行記号の種類に依存しません。

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

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

ブレークシンボルが見つからない場合(または、ブレークシンボルがテキストの最初のシンボルである場合)、$ firstlineにテキストまたは空の文字列の最初の行が含まれるようになりました。

1
Alexander C
list($line_1, $remaining) = explode("\n", $input, 2);

操作を繰り返したい場合に、一番上の行と残されたコンテンツを簡単に取得できます。それ以外の場合は、提案どおりにsubstrを使用します。

1
Paul Norman

strpossubstrを組み合わせて使用​​できます。最初に、文字が配置されている位置を見つけてから、文字列のその部分を返します。

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

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

これは、あなたの望むことですか ?

l.e。 1行の制限に気付かなかったため、これはそのままでは適用されません。他の人が提案したように、2つの関数を1行だけで組み合わせたり、必要に応じて1行のコードで呼び出されるカスタム関数を作成したりできます。あなたの選択。

0
misterjinx