在PHP中获取字符串的第一行

时间:2012-02-01 14:39:46

标签: php string newline strstr

在PHP 5.3中,有nice function似乎可以做我想要的事情:

strstr(input,"\n",true)

不幸的是,服务器运行PHP 5.2.17并且strstr的可选第三个参数不可用。有没有办法在以前的版本中用一行来实现这个目的?

11 个答案:

答案 0 :(得分:96)

你去吧

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

strtok() Documentation

答案 1 :(得分:10)

已经很晚了,但你可以使用爆炸。

<?php
$lines=explode("\n", $string);
echo $lines['0'];
?>

答案 2 :(得分:6)

$first_line = substr($fulltext, 0, strpos($fulltext, "\n"));

或其他地方会做的事情。丑陋,但可行。

答案 3 :(得分:3)

尝试

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

答案 4 :(得分:2)

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

答案 5 :(得分:1)

试试这个:

substr($text, 0, strpos($text, chr(10))

答案 6 :(得分:1)

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

如果您想重复操作,可以轻松获得顶线和内容。否则按建议使用substr。

答案 7 :(得分:1)

不依赖于换行符号的类型。

Entity Framework

$ firstline现在包含来自text或空字符串的第一行,如果没有找到中断符号(或者break符号是文本中的第一个符号)。

答案 8 :(得分:0)

您可以将strpossubstr结合使用。首先,找到字符所在的位置,然后返回字符串的那一部分。

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

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

这是你想要的吗?

<强> l.e。 没有注意到一行限制,所以这不适用于它的方式。您可以像其他人建议的那样将这两个函数组合在一行中,也可以创建一个自定义函数,该函数将在一行代码中调用。你的选择。

答案 9 :(得分:0)

很多时候字符串操作会面对以空行开头的变量,所以不要忘记评估是否真的要在字符串的第一个和最后一行考虑白线,或者修剪它。另外,为避免操作系统错误,请使用PHP_EOL以跨平台兼容的方式查找换行符(When do I use the PHP constant "PHP_EOL"?)。

$lines = explode(PHP_EOL, trim($string));
echo $lines[0];

答案 10 :(得分:0)

一种快速的方式来获取字符串的前n行,同时保持换行符。

$ multilinetxt

的示例6首行
echo join("\n",array_splice(explode("\n", $multilinetxt),0,6));

可以快速适应以捕获特定文本块,例如第10至13行:

echo join("\n",array_splice(explode("\n", $multilinetxt),9,12));