[解決済み] PHPの変数から空白を取り除くには?
質問
私はこれを知っています
コメント
PHP.netです。
のようなツールが欲しいです。
tr
のようなツールを PHP 用に作り、単純に
tr -d " " ""
この関数を実行してもうまくいきません。
php_strip_whitespace
で
$tags_trimmed = php_strip_whitespace($tags);
正規表現を実行してもうまくいきません。
$tags_trimmed = preg_replace(" ", "", $tags);
どのように解決するのですか?
正規表現は、デフォルトではUTF-8文字を考慮しません。そのため
\s
メタ文字はオリジナルのラテン文字セットのみを考慮します。したがって、次のコマンドはタブ、スペース、キャリッジリターン、および改行のみを削除します。
// http://stackoverflow.com/a/1279798/54964
$str=preg_replace('/\s+/', '', $str);
UTF-8 が主流になると、この式は新しい utf-8 文字に到達したときに、より頻繁に失敗したり停止したりするようになります。
\s
を考慮することができません。
unicode/utf-8 で導入された新しいタイプの空白に対処するために、現代の空白にマッチして削除される、より広範囲な文字列が必要とされます。
正規表現はデフォルトではマルチバイト文字を認識しないため、バイトセグメントが他の utf-8 文字で変更されるのを防ぐために、区切られたメタ文字列のみを使用して識別することができます (
\x80
が他の utf-8 文字に置き換わるのを防ぐためです (クワッドセットの
\x80
のサブバイトをスマートクォートで置き換えることができます。)
$cleanedstr = preg_replace(
"/(\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf)+/",
"_",
$str
);
これは、タブ、改行、垂直タブ、フォームフィード、キャリッジリターン、スペース、そして、さらに ここで :
<ブロッククオートnextline, non-breaking spaces, mongolian vowel separator, [en quad, em quad, en space, em space, three per-em space, four per-em space, six per-em space, figure space, punctuation space, thin space, hair space, zero width space, zero width non-joiner, zero width joiner], line separator, paragraph separator, narrow no-breaking space, medium mathematical space, word joiner, ideographical space, the zero width non-breaking space, and the zero width break spaces.
これらの多くは、自動化されたツールやサイトからエクスポートされた xml ファイルで大混乱を引き起こし、テキスト検索や認識を台無しにします。 次のコマンドにジャンプする (段落や行の区切り文字) を使用してコード行をスキップさせ、断続的で説明のつかないエラーを発生させます。
[Web からコピーして貼り付けるのはもう安全ではありません。あなたのコードを保護するためにキャラクタ スキャナを使用してください。]
関連
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] PHPで文字列からすべてのスペースを取り除くにはどうすればよいですか?重複