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

5

这个问题的解决方案

$str = trim($str, chr(0xC2).chr(0xA0))

于 2013-08-13T08:48:22.877 回答
3

您应该使用preg_replace(), 使其以多字节安全的方式。

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

备注

  • 这将解决初始 @Андрей-Сердюк 的问题:它会修剪\u00a0,因为 也\s匹配 Unicode 不间断空格
  • /u修饰符 (PCRE_UTF8) 告诉 PCRE 将主题作为 UTF8 字符串处理
  • \x00匹配空字节字符以模仿默认trim()函数行为

接受的@Андрей-Сердюк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 回答
-1
$str = '<span class="left_corner"> </span><span class="text">Adv</span><span class="right_corner"> </span>';
$rgx = '#(<[^>]+>)|(\s+)#';
$cleaned_str = preg_replace( $rgx, '' , $str );
echo '['. $cleaned_str .']';
于 2013-08-12T18:42:41.507 回答