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


コメント