用PHP修剪

时间:2010-03-26 03:55:55

标签: php string replace

我有这样的句子。

1 $nbsp;     2     3   4

如您所见,在1 2到3个文本之间,还有额外的空格。我希望输出只有一个空格。所以我的输出将是1 2 3 4

如果我使用trim,它只能删除空格,但不能删除 如何使用PHP trim来获取这样的输出?

7 个答案:

答案 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));

来源:http://php.net/manual/en/function.trim.php#98812

答案 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