サーバーに値を投稿するcontenteditable
要素があります。onblur
であるため、contenteditable
スペース エントリが繰り返されると、空白の代わりに追加さ
れるため、結果の HTML は次のようになります。
Testing title middle entry
from 要素で取得すると.text()
、通常の間隔で表示されます (アンダーラインはスペースをマークします):
Testing_title___middle___entry____
この.text()
値は、PHP バックエンドに投稿しています。そこで、保存手順を実行します。紐はトリミングが必要なので、基本trim($title)
はカットしませんでした。
そして、私はそれを理解することができないようです。
これも試しました 「\u00ed」のようなUnicodeエスケープシーケンスを適切なUTF-8エンコード文字にデコードする方法? 、どちらも助けにはなりませんでした。
Chrome Network インスペクタは、このエンコードされたデータを送信することを示しています:
Testing+title+%C2%A0+middle+%C2%A0+entry+%C2%A0+%C2%A0
implode(', ', unpack('C*', $title))
戻り値:
84, 101, 115, 116, 105, 110, 103, // Testing
32, // space
116, 105, 116, 108, 101, // title
32,
194, 160, //
32,
109, 105, 100, 100, 108, 101, // middle
32,
194, 160,
32,
101, 110, 116, 114, 121, // entry
32,
194, 160,
32,
194, 160
$title
最終的には単なる$_POST['title']
.
この文字列からすべての空白を削除するにはどうすればよいですか?
最後に、解決策は次のとおりです。
$title = preg_replace('/\s/iu', ' ', $title)