PHP は、特に Web 開発の分野で広く使用されているプログラミング言語です。 PHP では文字列を処理する必要がよくありますが、一般的なニーズの 1 つは、改行を含む長い文字列を配列形式に変換することです。
この記事では、PHP を使用して改行を含む文字列を配列に変換する方法を紹介し、その過程で役立つヒントと方法をいくつか示します。
まず、文字列内で改行文字がどのように表示されるかを確認しましょう。 Unix/Linux システムでは、行末の改行文字は \n
文字です。Windows システムでは、行末の改行文字は \r\n# です。 ## キャラクター。テキスト ファイルを編集したり読み込んだりすると、これらのさまざまな行末改行に遭遇します。たとえば、次の文字列には、異なる行末改行文字の複数のインスタンスが含まれています:
Hello\nworld\r\ndoing thingsこの文字列を配列に変換するには、文字列を正しくセグメント化する方法と、文字列を別の方法で処理する方法を考慮する必要があります。行末の改行。 explode 関数を使用するPHP の
explode() 関数は、区切り文字を指定することで文字列を配列に分割できます。さまざまな改行文字を含む文字列の場合、正規表現を使用して区切り文字を記述することができます。
\r\n と
\n 改行文字を含む文字列を配列に変換できます。出力は次のとおりです。
$str = "Hello\nworld\r\ndoing things"; $array = preg_split('/\r?\n/', $str); print_r($array);この例では、正規表現
/\r?\n/
を使用します。これは、\r\n と # に一致します。 ##\n
2 つの行末改行文字。したがって、文字列全体を 3 つの要素の配列に分割できます。 正規表現自体にもいくつかの特殊文字が含まれているため、使用前にエスケープする必要があることに注意してください。 PHP では、
preg_quote()
関数を使用して、正規表現内の特殊文字をすばやくエスケープできます。
Array ( [0] => Hello [1] => world [2] => doing things )
行末のスペースの処理行末の改行文字に加えて、行末にスペースやその他の目に見えない文字が存在する可能性があることも考慮する必要があります。行の終わり。これらのスペースは文字列の表示には影響しませんが、文字列から配列への変換には影響する可能性があります。たとえば、次の文字列には改行といくつかのスペースが含まれています:
$delimiter = "/".preg_quote("\r\n")."|".preg_quote("\n")."/"; $array = preg_split($delimiter, $str);
Hello \nworld \r\n doing things
出力結果:
$array = preg_split('/\r?\n/', $str); print_r($array);
これは私たちが望む結果ではありません。この問題を回避するには、文字列を分割する前に行末のスペースを削除する必要があります。
trim()関数を使用すると、文字列の両端の空白文字を削除できます。たとえば、次のコードは行末のスペースを削除し、文字列を配列に変換できます。
Array ( [0] => Hello [1] => world [2] => doing things )
出力結果: <pre class="brush:php;toolbar:false">$array = preg_split('/\r?\n/', $str);
foreach ($array as $key => $line) {
$array[$key] = trim($line);
}
print_r($array);</pre>
結論
Convert the改行文字を含む文字列 配列は、PHP における一般的な処理要件です。この記事では、
preg_split()以上が改行に基づいてphp文字列を配列に変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。