1. ホーム
  2. php

[解決済み] PHP の文字列を改行で展開する

2022-02-05 03:13:20

質問

簡単でしょう? まあ、これはうまくいきませんね :-)

$skuList = explode('\n\r', $_POST['skuList']);

解決方法は?

ベストプラクティス

最初の回答へのコメントで述べたように、ベストプラクティスは、PHP定数 PHP_EOL これは、現在のシステムの EOL を表します ( 行末 ).

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

PHPは、他にも多くの非常に 便利な定数 を使用すると、コードをシステムから独立させることができます。 このリンク を使えば、システムに依存しない便利なディレクトリ定数を見つけることができます。

警告

これらの定数は、ページのシステムに依存しないようにしますが、あるシステムから別のシステムへ移行する際に、別のシステムに保存されているデータで定数を使用すると、問題に遭遇する可能性があります。新しいシステムの定数は以前のシステムのものと異なる可能性があり、保存されたデータはもう動作しないかもしれません。ですから、データを保存する前に完全に解析し、システムに依存する部分を削除してください。

アップデイト

Andreasのコメントで、ここで紹介する「ベストプラクティス」の解決策は、説明したユースケースには当てはまらないことに気づきました。サーバーのEOL(PHP)は、ブラウザ(あらゆるOS)が使用しているEOLとは関係ありませんが、ブラウザは、文字列が送られてくる場所なんです。

ということで、@Alin_Purcaru さんの解決策をご利用ください( スリーダウン ) を使って、すべての拠点をカバーすることができます (そして彼の答えをアップブートしてください)。

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