php字段去除空格,php – 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: "\xC2\xA0"

$s = trim($s);

return $s;

}

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

assert("abc" === UberTrim(" \r\n \xc2\xa0 abc \t \xc2\xa0 "));

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

TRIM(REPLACE(text_field, '\xc2\xa0', ' '))

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”/>

标签:php,mysql,trim,whitespace,utf-8

来源: https://codeday.me/bug/20190712/1440820.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值