私は記事機能をサニタイズするようなものを作成しようとしています。私は、HTMLブログサイトに表示されている記事の内容を消去または正規化する関数を意味します。記事サニタイズ時にスペースと改行文字を残してください
\n
とを除くすべての空白を削除する必要があります。だから改行とスペース。
私は、addcslashes php関数で改行と空白をエンコードするアイディアを始めました。その後、すべての空白を削除します。次に、ストライプラッシュを使用します。次に、複数の\x20
オカレンスを1つのオカレンスと置き換えます。したがって、改行文字のようなものになり、正規表現操作のための一時的な休止状態になります。
しかし、出力に入力に存在する改行文字がないため、成功しませんでした。
オンラインバージョンは動作しませんhttps://ideone.com/I4oZCJ
マイコード:
<?php
$text = 'first line
second line';
$text = addcslashes($text, "\x20\t");
$text = preg_replace('/\s+/', ' ', $text);
$text = stripslashes($text);
$text = preg_replace('/\s+/', ' ', $text);
var_dump($text);
それを得るためにどのように?また
preg_replace('/\h+/', ' ', $text');
、あなたはすべての文字にあなたを除いて、あなた自身の文字クラスを作成することができます。
はあなたが\h
クラスを使用して、水平空白文字を置き換えることができます
私はこれらのパターンを使用していました。 CR空白は '\ r'を意味し、スペースで置き換えられました。削除されているはずです。あなたはそれをオンラインで見ることができます:https://ideone.com/ebP1Q4 – trzczy
@trzczy 'str_replace(" \ r "、 ''、$ text)'を最初に呼び出し、削除したい文字を次のように素早く簡単に削除します。可能であれば –
"\ r"は無視する唯一の垂直空白ではありません。フィルタは、 "スペースと\ nを除いてそれぞれ\ s"でなければなりません。調べることは、記事の目に見えない文字を正規化して、strlenが見える文字を数えさせることです。 – trzczy