2013-05-15 32 views
7

嗨,我得到一个PHP字符串,我需要去掉空格。我已经使用了下面的代码,但是当我回显$classname时,它只是显示仍然包含空格的字符串。无法获取str_replace()去除PHP字符串中的空格

<?php 
    $fieldname = the_sub_field('venue_title'); 
    $classname = str_replace(' ', '', $fieldname); 
    echo $classname; 
    ?> 
+0

使用十六进制编辑器来查看字节,如果空间在十六进制中不是'20',那么它不是一个“正常”空间。你可以在PHP中使用一个简单的函数来转换为HEX。 – HamZa

+0

可能重复的[去掉PHP中的变量里的空格](http://stackoverflow.com/questions/1279774/to-strip-whitespaces-inside-a-variable-in-php) –

回答

3

使用修剪这样

TRIM($fieldname); 

编辑:

preg_replace('/\s+/', '', $fieldname); 
+2

'trim()'会仅从字符串的开始和结尾删除空格 – billyonecan

+0

'trim()'仅在字符串的开头或结尾修剪。在Paul的例子中,空格字符可能在字符串内。 – ty812

4

问题可能不是字符的空间,但另一个空白字符。

尝试

$classname = preg_replace('/\s/', '', $fieldname); 
2

这可能是因为该空间是不是一个真正的空间,但whitesspace的其他形式。

你可能也想尝试:

$classname = preg_replace('/\s+/', '', $fieldname); 

here

+0

尝试用'\ h +'替换水平空格,如果需要,这将保留换行符。 – Martin

17

如果你知道白色的空间只是由于空间,你可以使用:

$classname = str_replace(' ','',$fieldname); 

但如果可能是由于空间,你可以使用:

$classname = preg_replace('/\s+/','',$fieldname) 
+1

尝试用'\ s +'代替'\ h +'查找水平空格,如果需要,这将保留换行符。 – Martin

0
<?php 
    $fieldname = "I am 21 Years Old"; 
    $classname = str_replace(' ', '', $fieldname); 
    echo $classname; 
?> 

这运行完美。 通过此功能检查返回值:the_sub_field('venue_title');

+0

我认为问题是该字符串不被视为字符串。它需要一个“任何一方,你会如何做到这一点在PHP?例如$ fieldname =”'“。the_sub_field('venue_title')。”'“; –

+0

使用” “。the_sub_field('venue_title')。“” 或者也许 “”+ the_sub_field('venue_title')+“” – Blu

2

这个问题是它拉的领域,而不是其余的php。 'the_sub_field('venue_title')'从wordpress插件'高级自定义字段'中提取了一个字段,但是此函数旨在显示数据而不是仅检索它。相反,我使用'get_sub_field('venue_title')',它工作。为帮助欢呼

+0

这是对这个威胁的正确答案,需要标记为 – JackSD

18

尝试添加ü -parameter的正则表达式模式,因为字符串可以有UTF-8编码:

$classname = preg_replace('/\s+/u', '', $fieldname); 
+3

WOW。巨大的感谢!帮助! –

+0

这是我工作的唯一东西 – Banning

+0

同样在这里。字符串从Wordpress元字段中回收。保存在管理面板中,从旧网站“复制粘贴”后,使用不同的编码... –