Kohana ライブラリのコア関数であるtext::auto_p()関数を変更しています。
この関数は、それ自体を「ステロイドの nl2br()」と表現しています。基本的には<br />
一重改行ですが、二重改行は<p>
タグで囲まれています。
私が見つけた制限は、それが要素<br />
内にあるということです。<pre>
これにより、二重の新しい行が作成されますが、これは私が望んでいるものではありません。正規表現を使用して pre 要素を取得するように変更し、問題なく<br />
動作する を取り除くコールバックを作成しました。
ただし、主な問題は、テキスト内にauto_p()
'd を取得するコード サンプルがあり、(読みやすくするために) インデントを保持する必要があることです。私にとって残念なことに、関数は行の先頭と末尾の空白を取り除きます。
先頭のスペースを削除する正規表現は次のとおりです
$str = preg_replace('~^[ \t]+~m', '', $str);
私は最高の正規表現の第一人者ではありませんが、「少なくとも 1 つある先頭のスペースとタブを取得し、それらを空の文字列に置き換える」と言っていると確信しています。
この行を削除しようとしましたが、<br />
絶対に不要な場所に追加されます-あるケースでは、このような出力が得られました
<ul><br />
<li>something</li>
</ul>
<pre>
この正規表現またはコードを変更して、要素内の先頭のスペースを削除しないようにするにはどうすればよいですか?
Kohana のオリジナルのヘルパー関数は、こちらから入手できます。(ほぼ一番下までスクロールします)。
「HTMLパーサーを使用する」タイプの回答がいくつか得られることはわかっています-そしてあなたが正しいかもしれませんが-既存のコードは単に正規表現を使用しているため、より単純なソリューションを好むでしょう(ライブラリなどを含める必要がない場合) .
御時間ありがとうございます。