删除空格php

时间:2013-08-12 18:27:14

标签: php trim spaces

我需要从字符串中删除所有标签,并使其不含空格。

我有字符串

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

使用strip_tags后我得到了字符串

" Adv "

使用修剪功能我不能删除空格。

JSON字符串看起来像“\ u00a0 ... \ u00a0”。

请帮我删除这个空格。

4 个答案:

答案 0 :(得分:4)

解决此问题

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

答案 1 :(得分:2)

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

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

备注

  • 这将修复初始@Андрей-Сердюк的问题:它将修剪\u00a0,因为\s也匹配Unicode非破坏空格
  • /u修饰符(PCRE_UTF8)告诉PCRE将主题处理为UTF8-string
  • \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à"

答案 2 :(得分:0)

怎么样:     

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

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

答案 3 :(得分:-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 .']';