ホームページ >バックエンド開発 >PHPチュートリアル >PHP 文字列を改行文字で確実に分解するにはどうすればよいですか?

PHP 文字列を改行文字で確実に分解するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 12:15:10669ブラウズ

How to Reliably Explode a PHP String by New Line Characters?

PHP 文字列を改行で分解する

PHP では、explode() 関数を使用して、文字列を配列に分割します。指定された区切り文字。ただし、改行文字を含む文字列を扱う場合、単純な "n" 区切り文字の使用は常に期待どおりに機能するとは限りません。

コード $skuList =explode('nr', $_POST['skuList']) ;は、Windows と Mac の両方の改行文字を表す「nr」区切り文字を使用しているため、機能しません。ただし、Linux や Unix などのシステムでは、「n」のみが使用されます。

ベスト プラクティス:

改行で文字列を展開するベスト プラクティスは、 PHP 定数 PHP_EOL。この定数は現在のシステムの行末文字を表し、コードがシステムに依存しないことを保証します。

$skuList = explode(PHP_EOL, $_POST['skuList']);

警告:

PHP_EOL を使用するとシステムの独立性が促進されますが、注意してください。システム間でデータを移動するときに実行する必要があります。定数の値はシステム間で異なる場合があり、その結果、データが不正確になる可能性があります。したがって、データを保存する前にデータを徹底的に解析して、システムに依存する要素をすべて削除することをお勧めします。

UPDATE:

ただし、この特定のケースでは、次のように指摘されています。 @Andreas、$_POST['skuList']の改行文字はサーバーではなくブラウザからのものであるため、この解決策は適切ではない可能性があります。したがって、より適切な解決策が @Alin_Purcaru によって推奨されています:

$skuList = preg_split('/\r\n|\r|\n/', $_POST['skuList']);

この正規表現は、さまざまなオペレーティング システムで使用される共通の改行文字シーケンスのいずれかに基づいて文字列を分割します。

以上がPHP 文字列を改行文字で確実に分解するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。