我有这样的句子。
1 $nbsp; 2 3 4
如您所见,在1 2到3个文本之间,还有额外的空格。我希望输出只有一个空格。所以我的输出将是1 2 3 4
如果我使用trim,它只能删除空格,但不能删除
如何使用PHP trim来获取这样的输出?
答案 0 :(得分:58)
在php.net上找到这个,效果很好:
$myHTML = " abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
trim($converted, chr(0xC2).chr(0xA0));
答案 1 :(得分:22)
$str = "1 $nbsp; 2 3 4";
$new_str = str_replace(" ", '', $str);
答案 2 :(得分:19)
对于那些想要修剪的人来说,这是一个更具包容性的答案:
$str = trim($str, " \t\n\r\0\x0B\xC2\xA0");
相同修剪处理html实体:
$str = trim(html_entity_decode($str), " \t\n\r\0\x0B\xC2\xA0");
这里的html_entity_decode和trim交互概述在PHP文档中: http://php.net/manual/en/function.html-entity-decode.php#refsect1-function.html-entity-decode-notes
答案 3 :(得分:10)
$str = " abc ";
echo trim($str, "\xC2\xA0"); //abc
答案 4 :(得分:1)
如果你的字符串实际上有“”,
$str="1 2 3 4";
$s = str_replace(" ","",$str);
print $s;
答案 5 :(得分:1)
echo str_replace ( " ", "", "1 2 3 4" );
只记得你需要回显str_replace的结果,你也不必担心空格,浏览器只会显示一个空格。
答案 6 :(得分:1)
回答有点迟,但希望可以帮助其他人。从html中提取内容时最重要的是在php中使用utf8_decode()。然后所有其他字符串操作变得轻而易举。甚至可以通过将浏览器中的粘贴字符直接复制到php代码来替换外来字符。以下函数用空格替换Syntax Error: missing ] in computed property name
。然后使用
将所有额外的空格替换为单个空格。最后删除了前导和尾随空格。
preg_replace()
1 2 3 4