文章の改行を削除する。既存改行やスペース等の区切りは全て1つの半角スペースへ変更

テキスト処理

処理の流れ

 閲覧数:897  投稿日:2017-04-28  更新日:2017-04-28  

1.対象文字列全体の前後空白を削除
2.改行 → 半角スペース
3.全角スペース → 半角スペース
4.連続する半角スペース → 1つの半角スペース
5.。半角スペース → 。


コード

$string = "                  無保証
                  ★★は提供するソフトウエアについて、第1章総則の定めのとおり、エラーやバグ、論理的誤り、不具合、中断その他の瑕疵(かし)がないこと、信頼性、正確性、完全性、有効性について一切保証しておりません。
                    ソフトウエアは明示または黙示の有無にかかわらず、★★がその提供時において保有する状態で提供するものであり、特定の目的への適合性、有用性(有益性)、セキュリティ、権原および非侵害性について一切保証しておりません。
                
                
              
                
                
                  APIに関する特約事項
                  ★★が提供するAPIをご利用になる場合、以下の特約事項が適用されます。
                    お客様が★★が提供するAPIを使用してソフトウエアを開発する場合には、「クレジット表示ガイドライン」と「クレジット配置ルール」を順守しなければなりません。
                    お客様は、開発ソフトウエアに、★★が定める開発ソフトウエアを特定するためのアプリケーションID等を付さなければなりません。
                    アプリケーションID等の情報は、お客様が開発した開発ソフトウエアの使用に際し★★に送信されることになります。";

$string = trim($string); //文字列全体の前後空白を削除
$string = str_replace(array("\r", "\n"), '', $string); //改行 → 半角スペース
$string = preg_replace('/ /', ' ', $string); //全角スペース → 半角スペース
$string = preg_replace('/\s+/', ' ', $string); //連続する半角スペース → 1つの半角スペース
$string = str_replace('。 ', '。', $string); //。半角スペース → 半角スペース

//出力
echo $string;



結果

無保証 ★★は提供するソフトウエアについて、第1章総則の定めのとおり、エラーやバグ、論理的誤り、不具合、中断その他の瑕疵(かし)がないこと、信頼性、正確性、完全性、有効性について一切保証しておりません。ソフトウエアは明示または黙示の有無にかかわらず、★★がその提供時において保有する状態で提供するものであり、特定の目的への適合性、有用性(有益性)、セキュリティ、権原および非侵害性について一切保証しておりません。APIに関する特約事項 ★★が提供するAPIをご利用になる場合、以下の特約事項が適用されます。お客様が★★が提供するAPIを使用してソフトウエアを開発する場合には、「クレジット表示ガイドライン」と「クレジット配置ルール」を順守しなければなりません。お客様は、開発ソフトウエアに、★★が定める開発ソフトウエアを特定するためのアプリケーションID等を付さなければなりません。アプリケーションID等の情報は、お客様が開発した開発ソフトウエアの使用に際し★★に送信されることになります。






フォームより入力された改行を含むテキストを、改行維持したまま出力



類似度ページランキング
順位 ページタイトル抜粋
1 文章の改行を削除する。既存改行やスペース等の区切りは全て1つの半角スペースへ変更 78
2 文字列に含まれるすべての半角空白と全角空白を削除 34
3 「半角スペースもしくは全角スペースで区切られた文字列」先頭に指定文字列を付与 28
4 文字列の改行文字を削除 27
5 マークダウンで書かれたURLを(エスケープ処理するのではなく)削除する 24
6 文字列を「複数の区切り文字」で配列へ変換 / explode使用案。却下 24
7 文字列を「複数の区切り文字」で配列へ変換 / preg_split使用案。採用 23
8 多次元配列キーを、多次元配列内にある「特定キーの値」へ変更 20
9 全てのクッキーを表示 20
10 16進数カラーコードをRGBA形式へ変更 20
11 'xxxx_数字'キーの数だけ、数字毎に分けて二次元配列へ格納(キーのサフィックスは削除する) / array_walk 20
12 'xxxx_数字'キーの数だけ、数字毎に分けて二次元配列へ格納後、キーのサフィックスを削除する / array_filter 20
13 複数の指定文字列を削除 20
14 PHPで最後の「指定区切り文字」より後ろを取得 19
15 全ての PHP エラーを表示 19
16 変数名の一部だけを可変にする 19
17 「最後に位置している指定文字列」より後の文字列を取得 18
18 (データベースなどから取得した)多次元配列の構造を変換して一次元配列を返す 18
19 ファイルが存在するかどうか調べてからinclude_onceを実行します。 18
20 変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える 18
2024/11/23 10:40 更新
週間人気ページランキング / 11-16 → 11-22
順位 ページタイトル抜粋 アクセス数
1 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 8
1 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 8
2 URLから、トップページ(index.html)判定 | ルーティング 6
3 指定文字列より前を取得 | 文字列(テキスト処理) 5
4 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 4
4 MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定 | 日付および時刻関連 4
5 現在WebページのURLパスを第2階層まで取得 | パス 3
5 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する | 文字列(テキスト処理) 3
5 2 つの配列(文字列とdatetime)が要素順で 対応している時、日付を整形して 新しい配列を作成 | 配列(型) 3
6 再帰処理で平坦な連想配列をツリー化 | 多次元配列(型) 2
6 「1週間後の年月日時分秒」を表示 … time() | 日付および時刻関連 2
6 投稿日時をTwitterのように「★分前」「★時間前」という文字列変換するユーザ定義PHP関数 | 日付および時刻関連 2
6 配列要素を、文字列連結して表示(元配列を上書) … foreach文+implode | 配列(型) 2
6 8桁の生年月日数字から、年齢を計算 | 日付および時刻関連 2
6 null代入とunset()の違い | 変数 2
6 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 2
7 配列定数同士をarray_mergeで後ろに単純連結(キーは新たに振り直す) | 定数 1
7 gethostbyaddr / IPアドレスからホスト名を取得 | ネットワーク 関数 1
7 マークダウンで書かれたURLを(エスケープ処理するのではなく)削除する | テキスト処理 1
7 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 | 文字列(テキスト処理) 1
2024/11/23 1:02 更新