1

文字列からすべてのタグを削除し、スペースなしで作成する必要があります。

私は文字列を持っています

"<span class="left_corner"> </span><span class="text">Adv</span><span class="right_corner"> </span>"

strip_tags を使用した後、文字列を取得します

" Adv "

トリム機能を使用してもスペースを削除できません。

JSON 文字列は「\u00a0...\u00a0」のようになります。

このスペースを削除してください。

4

4 に答える 4

3

preg_replace()マルチバイトセーフな方法で作成するには、を使用する必要があります。

$str = preg_replace('/^[\s\x00]+|[\s\x00]+$/u', '', $str);

:

  • これにより、初期の @Андрей-Сердюк の問題が修正されます。Unicode の非改行スペースにも一致する\u00a0ため、 トリムされます。\s
  • /u修飾子 (PCRE_UTF8) は、PCRE に件名を UTF8 文字列として処理するように指示します。
  • \x00trim()null バイト文字に一致して、デフォルトの関数の動作を模倣します

受け入れられた@Андрей-Сердюкのtrim()回答は、マルチバイト文字列を台無しにします。

例:

// This works:
echo trim(' Hello ', ' '.chr(0xC2).chr(0xA0)); 
// > "Hello" 

// And this doesn't work:
echo trim('  Solidarietà  ', ' '.chr(0xC2).chr(0xA0)); 
// > "Solidariet?" -- invalid UTF8 character sequense

// This works for both single-byte and multi-byte sequenses:
echo preg_replace('/^[\s\x00]+|[\s\x00]+$/u', '', ' Hello ');
// > "Hello"
echo preg_replace('/^[\s\x00]+|[\s\x00]+$/u', '', ' Solidarietà '); 
// > "Solidarietà"
于 2016-05-30T12:25:08.257 に答える
0

どうですか:

$string = '" Adv "';
$noSpace = preg_replace('/\s/', '', $string);

?

http://php.net/manual/en/function.preg-replace.php

于 2013-08-12T18:34:35.013 に答える