使用 PHP进行修剪

0wi1tuuw  于 2022-12-17  发布在  PHP
关注(0)|答案(8)|浏览(112)

我有这样一句话。
正如你所看到的,在12和3之间的文本,有额外的空格。我希望他们之间只有一个空格的输出。所以我的输出将是1 2 3 4
如果我使用trim,它只能删除白色,但不能删除 我如何使用PHP trim函数来获得这样的输出?

klr1opcd

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

toiithl6

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

cunj1qz1

cunj1qz13#

$str = "1 $nbsp;     2     3   4";
$new_str = str_replace(" ", '', $str);
piok6c0g

piok6c0g4#

$str = " abc ";

echo trim($str, "\xC2\xA0"); //abc
eqzww0vc

eqzww0vc5#

回答有点晚,但希望能帮助别人。从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;

一二三四

sauutmhj

sauutmhj6#

如果字符串中确实有““,

$str="1       2     3   4";
$s = str_replace("  ","",$str);
print $s;
zvms9eto

zvms9eto7#

echo str_replace ( " ", "", "1       2     3   4" );

只要记住你需要回显str_replace的结果,你也不需要担心白色,因为浏览器只会显示一个空格。

qgzx9mmu

qgzx9mmu8#

这对我来说很有用:
preg_replace(“~\x{00 a0}~ siu”,“”,$内容);

相关问题