我有这样一句话。正如你所看到的,在12和3之间的文本,有额外的空格。我希望他们之间只有一个空格的输出。所以我的输出将是1 2 3 4。如果我使用trim,它只能删除白色,但不能删除 我如何使用PHP trim函数来获得这样的输出?
1 2 3 4
klr1opcd1#
在www.example.com上找到的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
toiithl62#
对于那些只想做修剪的人来说,一个更包容的答案是:
$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
cunj1qz13#
$str = "1 $nbsp; 2 3 4"; $new_str = str_replace(" ", '', $str);
piok6c0g4#
$str = " abc "; echo trim($str, "\xC2\xA0"); //abc
eqzww0vc5#
回答有点晚,但希望能帮助别人。从html中提取内容时最重要的是在php中使用utf8_decode()。然后所有其他字符串操作都变得轻而易举。甚至外国字符也可以通过直接从浏览器复制粘贴字符到php代码中来替换。下面的函数用空格替换 。然后使用preg_replace()将所有多余白色替换为单个空格,最后删除前导和尾随空格。
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;
一二三四
sauutmhj6#
如果字符串中确实有““,
$str="1 2 3 4"; $s = str_replace(" ","",$str); print $s;
zvms9eto7#
echo str_replace ( " ", "", "1 2 3 4" );
只要记住你需要回显str_replace的结果,你也不需要担心白色,因为浏览器只会显示一个空格。
qgzx9mmu8#
这对我来说很有用:preg_replace(“~\x{00 a0}~ siu”,“”,$内容);
8条答案
按热度按时间klr1opcd1#
在www.example.com上找到的php.net,效果很好:
图片来源:http://php.net/manual/en/function.trim.php#98812
toiithl62#
对于那些只想做修剪的人来说,一个更包容的答案是:
相同的修剪处理 html实体:
这个html_entity_decode和trim交互在下面的PHP文档中有概述:http://php.net/manual/en/function.html-entity-decode.php#refsect1-function.html-entity-decode-notes
cunj1qz13#
piok6c0g4#
eqzww0vc5#
回答有点晚,但希望能帮助别人。从html中提取内容时最重要的是在php中使用utf8_decode()。然后所有其他字符串操作都变得轻而易举。甚至外国字符也可以通过直接从浏览器复制粘贴字符到php代码中来替换。下面的函数用空格替换
。然后使用preg_replace()
将所有多余白色替换为单个空格,最后删除前导和尾随空格。一二三四
sauutmhj6#
如果字符串中确实有““,
zvms9eto7#
只要记住你需要回显str_replace的结果,你也不需要担心白色,因为浏览器只会显示一个空格。
qgzx9mmu8#
这对我来说很有用:
preg_replace(“~\x{00 a0}~ siu”,“”,$内容);