ホームページ > バックエンド開発 > PHPの問題 > PHPでスペースが削除できない場合の対処法

PHPでスペースが削除できない場合の対処法

藏色散人
リリース: 2023-03-17 09:32:01
オリジナル
2172 人が閲覧しました

php でスペースが削除できない問題の解決策: 1. 16 進エディタを使用してバイトを表示します; 2. u パラメータを "regex-pattern" に追加します; 3. "str_replace(' ' を使用します) , ' ', $fieldname);" を使用してスペースを置き換えることができます。

PHPでスペースが削除できない場合の対処法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

php スペースが削除できない場合はどうすればよいですか?

PHP 文字列を取得したので、スペースを削除する必要があります。次のコードを使用しましたが、$classname をエコーすると、スペースが含まれた文字列のみが表示されます。

$fieldname = the_sub_field('venue_title');
$classname = str_replace(' ', '', $fieldname);
echo $classname;
ログイン後にコピー

16 進数エディタを使用してバイトを表示します。16 進数内のスペースが 20 でない場合、それは「通常の」スペースではありません。 PHP の簡単な関数を使用して HEX に変換できます。

PHP での変数内のスペースの削除と重複する可能性があります

文字列には UTF-8 エンコーディングを使用できるため、正規表現パターンに u パラメータを追加してみてください。

$classname  =  preg_replace('/\s+/u', '', $fieldname);
ログイン後にコピー

うわー。どうもありがとうございます!ヘルプ!

これが私にとってうまくいく唯一の方法です

ここでも同じです。文字列は WordPress メタフィールドから取得されます。古いサイトから「コピー&ペースト」した後、別のエンコードを使用して管理パネルに保存されました...

空白が空白のみによって引き起こされていることがわかっている場合は、次を使用できます:

$classname = str_replace(' ','',$fieldname );
ログイン後にコピー

しかし、スペースが原因である可能性がある場合は、次のようにすることができます:

$classname = preg_replace('/\s+/','',$fieldname )
ログイン後にコピー

\h の代わりに \s を使用して水平方向のスペースを取得してみてください。これにより、必要に応じて改行が保持されます。

問題は、文字がスペースではなく、別の空白文字である可能性があります。

試してください

$classname = preg_replace('/\s/', '', $fieldname);
ログイン後にコピー

このようにtrimを使用してください

TRIM($fieldname);
ログイン後にコピー

編集:

preg_replace('/\s+/', '', $fieldname);
ログイン後にコピー

trim()は文字列の先頭と末尾のスペースのみを削除します

'trim()' は文字列の先頭または末尾のみをトリミングします。 Paul の例では、文字列に空白文字が含まれている可能性があります。

問題は、PHP の残りの部分ではなく、取得しているフィールドです。 「the_sub_field('venue_title')」はWor​​dPressプラグイン「Advanced Custom Fields」からフィールドを抽出しますが、この関数は単にデータを取得するのではなく、データを表示するために使用されます。代わりに、get_sub_field('venue_title') を使用すると機能します。このヘルプに乾杯

これはこの脅威に対する正しい答えです。フラグを立てる必要があります

このスペースは実際にはスペースではなく、他の形式の空白である可能性があります。

次のことを試してみるとよいでしょう:

$classname = preg_replace('/\s+/', '', $fieldname);
ログイン後にコピー

ここから。

水平スペースを \h に置き換えてみてください。これにより、必要に応じて改行が保持されます。

$fieldname ="I  am  21  Years  Old";
$classname = str_replace(' ', '', $fieldname);
echo $classname;
?>
ログイン後にコピー

これは完璧に機能します。

この関数で戻り値を確認してください: the_sub_field('venue_title');

問題は、文字列が文字列として扱われないことだと思います。どちらかの側に「」が必要です。PHP ではどのようにこれを実行しますか? たとえば、$fieldname="'".the_sub_field('venue_title')."'";

Use "".the_sub_field('venue_title') ) ')." または " the_sub_field('venue_title') "

推奨学習: "PHP ビデオ チュートリアル "

以上がPHPでスペースが削除できない場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート