加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – trim()不会删除数据库字段中的空格

发布时间:2020-12-13 22:14:09 所属栏目:PHP教程 来源:网络整理
导读:我在 MySQL的文本字段中的段落开头有一些空格. 在PHP语句中使用PHP中的trim($var_text_field)或在MySQL语句中使用TRIM(text_field)绝对没有.这个空白是什么,我如何通过代码删除它? 如果我进入数据库并将其退出,它会正确保存.它只是没有通过trim()函数删除.
我在 MySQL的文本字段中的段落开头有一些空格.

在PHP语句中使用PHP中的trim($var_text_field)或在MySQL语句中使用TRIM(text_field)绝对没有.这个空白是什么,我如何通过代码删除它?

如果我进入数据库并将其退出,它会正确保存.它只是没有通过trim()函数删除.

解决方法

function UberTrim($s) {
    $s = preg_replace('/xA0/u',' ',$s);  // strips UTF-8 NBSP: "xC2xA0"
    $s = trim($s);
    return $s;
}

不间断空间的UTF-8字符编码Unicode(U 00A0)是2-byte sequence C2 A0.我试图利用second parameter to trim(),但这并没有成功.使用示例:

assert("abc" === UberTrim("  rn  xc2xa0  abc  t xc2xa0   "));

由于@RudolfRein的评论,一个MySQL替换TRIM(text_field)也删除了UTF不间断空格:

TRIM(REPLACE(text_field,'xc2xa0',' '))

UTF-8清单:

(更多检查here)

>确保您的PHP源代码编辑器位于UTF-8 mode without BOM.或者在preferences中设置.
>确保您的MySQL客户端设置为UTF-8字符编码(更多here和here),例如

$pdo = new PDO(‘mysql:host = …; dbname = …; charset = utf8’,$userid,$password);
$pdo-> exec(“SET CHARACTER SET utf8”);
>确保您的HTTP服务器设置为UTF-8,例如Apache:

AddDefaultCharset UTF-8
>确保浏览器需要UTF-8.

header(‘Content-Type:text / html; charset = utf-8’);

要么

< meta http-equiv =“Content-Type”content =“text / html; charset = utf-8”/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读