我有这样一个句子。修剪 用PHP
1 $nbsp; 2 3 4
正如你所看到的,在1 2和3之间的文本中,有额外的空格。我希望它们之间只有一个空格的输出。所以我的输出将是1 2 3 4
如果我使用修剪,它只能删除空白,但不是那
我怎样才能使用PHP修剪得到这样的输出?
我有这样一个句子。修剪 用PHP
1 $nbsp; 2 3 4
正如你所看到的,在1 2和3之间的文本中,有额外的空格。我希望它们之间只有一个空格的输出。所以我的输出将是1 2 3 4
如果我使用修剪,它只能删除空白,但不是那
我怎样才能使用PHP修剪得到这样的输出?
$str = "1 $nbsp; 2 3 4";
$new_str = str_replace(" ", '', $str);
,如果你的字符串实际上有“ ”,
$str="1 2 3 4";
$s = str_replace(" ","",$str);
print $s;
echo str_replace (" ", "", "1 2 3 4");
只记得你需要回声出str_replace函数的结果,你ALO不需要担心白色空格的浏览器只会显示一个空白区域。
在php.net找到这一点,伟大的工程:
$myHTML = " abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
trim($converted, chr(0xC2).chr(0xA0));
你有没有注意到遗失的遗物? – Deele 2013-03-04 10:46:07
@Deele我并不总是测试我的代码,但是当我这样做时,我会在生产中进行测试。 – 2013-03-04 13:32:19
优秀的托比亚斯,非常感谢... – 2013-08-22 13:32:20
对于那些一个更具包容性的回答谁不想只是做一个微调:
$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和修剪相互作用在这里的PHP文件中概述: http://php.net/manual/en/function.html-entity-decode.php#refsect1-function.html-entity-decode-notes
当它只是一个6个字符的字符串时,它不会去掉 。 – 2015-02-09 18:56:30
@ArtemRussakovskii:它不应该去掉 ,因为这是一个html实体,不适合修剪。如果您希望在字符串中首先使用html_entity_decode修剪掉额外的 ,那么这是合适的解决方案。 – Chaoix 2015-02-25 17:17:58
$str = " abc ";
echo trim($str, "\xC2\xA0"); //abc
通常情况下,如果答案包含对代码意图做什么的解释,以及为什么解决问题而不介绍其他问题,答案会更有帮助。 – 2015-04-28 06:13:28
晚了一点回答,但希望可以帮助别人。从html中提取内容最重要的是在php中使用utf8_decode()。然后所有其他的字符串操作变得轻而易举。即使是外来字符也可以直接从浏览器中将粘贴字符复制到php代码中。以下函数用空格替换
。然后使用preg_replace()
将所有额外的空格替换为单个空格。最后删除前后白色空格。
function clean($str)
{
$str = utf8_decode($str);
$str = str_replace(" ", " ", $str);
$str = preg_replace('/\s+/', ' ',$str);
$str = trim($str);
return $str;
}
$html = "1 $nbsp; 2 3 4";
$output = clean($html);
echo $output;
PHP代码被解释为服务器,而不是在客户端。浏览器从来没有看到它。 – 2014-05-28 07:24:24