ホームページ > バックエンド開発 > PHPチュートリアル > PHP で文字列内の改行を単一のスペースに置き換えるにはどうすればよいですか?

PHP で文字列内の改行を単一のスペースに置き換えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-08 07:43:12
オリジナル
273 人が閲覧しました

How Can I Replace Newlines in a String with Single Spaces in PHP?

改行を削除して 1 つのスペースに置き換える

文字列からすべての改行を削除し、1 つの空のスペースに置き換えるには、次のことを考慮します。

を理解する問題

改行を含む文字列があり、改行の位置に 1 つのスペースを挿入して改行を削除したいと考えています。たとえば、文字列:

$string = "
put returns between paragraphs

for linebreak add 2 spaces at end

";
ログイン後にコピー

は次のようになります:

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
ログイン後にコピー

Solution

これを実現するには、PHP の preg_replace( ) 関数を正規表現とともに使用して、改行を照合して置換します。次の正規表現は、改行 (n)、キャリッジ リターン (r)、二重改行 ("rn") を含むすべての改行を識別します。

/\r\n|\r|\n/
ログイン後にコピー

ただし、このアプローチは、複数の連続する改行を複数のスペースに置き換えます。これを回避するには、複数のスペースとも一致し、それらを単一のスペースに置き換える、より効率的な正規表現を使用します。

$string = trim(preg_replace('/\s\s+/', ' ', $string));
ログイン後にコピー

この変更された正規表現では、単一と複数の改行、および複数のスペースの両方が使用されます。

追加の考慮事項

提供されるソリューションでは効果的に削除されますが、改行を挿入し、その位置に 1 つのスペースを導入する場合、複数の連続する単語が関係する場合、状況がより複雑になる可能性があることに注意してください。このようなシナリオでは、二重スペースが発生しない代替アプローチは次のとおりです。

$string = trim(preg_replace('/\s+/', ' ', $string));
ログイン後にコピー

以上がPHP で文字列内の改行を単一のスペースに置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート