我应该使用哪一行字符?

时间:2012-07-11 19:16:14

标签: php mysql

我有一个textarea页面,其内容保存到数据库中 内容如下所示:

before
--------------
after

现在我需要将文本拆分为“之前”和“之后” - 没有任何新的符号。

所以我的问题是:
EOL角色取决于什么?
a)在平台上用户正在运行
b)在PHP服务器的平台上 c)在DB服务器的平台上

是否有更好的跨平台解决方案?

$string_exploded = explode( "\n". $delimiter. "\n", $string );

if( count($string_exploded) === 1 )
{
    $string_exploded = explode( "\r\n". $delimiter. "\r\n", $string );
}

谢谢大家的答案

2 个答案:

答案 0 :(得分:3)

您应该使用PHP_EOL。这将符合机器的正确行结束。

如果您只是从数据库中拔出,那么您应该使用与之相同的角色进行爆炸。

即使您担心字符串末尾有空格,也可以事后用trim对自己感到满意。

答案 1 :(得分:0)

另一种解决方案是,如果您不想担心数据库中可能出现的行结尾,请改用preg_split()

这样的事情:

$string_exploded = preg_split('/(\\n|\\r\\n)' . $delimiter . '(\\n|\\r\\n)/', $string);

如果您的数据可能包含没有数据的双分隔符,则可以使用PREG_SPLIT_NO_EMPTY使其自动丢弃任何空条目。