0

コンテンツがデータベースに保存されるテキストエリアのあるページが 1 つあります。
内容は次のようになります。

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 );
}

回答ありがとうございました

4

2 に答える 2

3

を使用する必要がありますPHP_EOL。これは、マシンの適切な行末に準拠します。

データベースからプルしている場合は、結合に使用したのと同じ文字で爆発するはずです。

文字列の末尾に空白があることを心配している場合でも、trim後で使用して満足してください。

于 2012-07-11T19:17:20.460 に答える
0

データベースにどの行末が表示されるかを心配したくない場合の代替ソリューションは、代わりにpreg_split()を使用することです。

このようなもの:

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

PREG_SPLIT_NO_EMPTYこれには、 を使用して、間にデータのない二重区切り文字がデータに含まれる可能性がある場合に空のエントリを自動的に破棄できるという追加の利点があります。

于 2012-07-11T19:32:37.383 に答える