PHPの空白行削除、Htmlの間のスペースを削除・スペース埋め

PHPのTipsです。

PHPの空白行削除

    // 入力テキストを行に分割
    // $input_lines = explode("\n", $text); // 空白行ができてしまう
    // $input_lines = explode("\n", str_replace(["\r\n", "\r"], "\n", $text)); // preg_split()の代替
    $input_lines = preg_split('/\R/', $text);
    

preg_split('/\R/', $text) は、正規表現を使用してテキストを行に分割する PHP の関数です。

  • preg_split(): 正規表現パターンに基づいて文字列を分割する PHP 関数です。
  • /\R/: これは正規表現パターンです。
    • \R は「任意の種類の改行」を表す特殊な正規表現文字です。
    • \n (LF), \r (CR), \r\n (CRLF) のすべてが含まれます。

\nと\r\nの違い

このあたりの知識があまりなかったため、WordPressのプラグイン開発でハマりましたね。わかってしまえば、なんてことないのですけど。

  • \n(LF):Unix系、Mac
  • \r\n(CR+LF):Windows
  • 通信プロトコルはCRLF(\r\n)
スポンサーリンク

PHPとHtmlの間のスペースを削除・スペース埋め

trimしてもダメでした。単純にインデントがそのまま表示されているだけでした。

<textarea name="custom_text" id="custom_text" rows="4" maxlength="120" style="width:100%;"
><?php echo esc_textarea(trim(get_post_meta($post->ID, '_custom_text', true))); ?></textarea>

全部一行にするのも見にくいので>を前に持ってきました。

スポンサーリンク

PHPで閉じ括弧がない理由

他の言語をやっていたため、はじめてPHPを見たとき、閉じ括弧がないのが謎でした。

<?php

PHPでは、<?php タグで開始し、?> タグで終了しますが、ファイルの最後に ?> タグがない場合もあります。これは、ファイルの最後が PHP コードで終わっている場合、?> タグを省略できるためです。?> タグの後に空白や改行があると、それらが出力されてしまい、意図しない動作を引き起こす可能性があるため、ファイルの最後が PHP コードで終わる場合は、?> タグを省略するのが一般的な慣習となっています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする