从不需要的字符格式化输入字符串

时间:2019-03-21 20:02:14

标签: php

嗨,如何用php中不需要的字符格式化字符串?尝试了strip_tags,mysqli_real_escape_string,但没有成功。

这是场景。该字符串是通过可允许富文本输入的android应用输入的,下面是图片 enter image description here

添加后,数据库条目看起来很正常,下面是图片

enter image description here

现在终于从URL中读取了字符串,下面是图片

enter image description here

如您所见,粗体文本之间有一个Â字符,但是它没有出现在第二张图像的db条目中。实际上,这个字符串是由gsm模块读取的,并且由于Â字符,导致系统崩溃。

strip_tags返回相同的字符串,而mysqli_real_escape_string返回空字符串。

如何从php中不需要的字符(不仅仅是Â)中清除此类字符串以仅返回纯文本?

1 个答案:

答案 0 :(得分:0)

这与Unicode与ASCII有关。您的语言环境必须设置为ASCII,然后代码才能起作用,因为[[:: print:]]引用根据当前语言环境确定了不可打印的内容。 这是对字符串和数组都有答案的帖子:

Remove non-ascii characters from string

$str = 'aAÂ';
$str = preg_replace('/[[:^print:]]/', '', $str); // should be aA

另一个具有很好解释的参考文献: https://alvinalexander.com/php/how-to-remove-non-printable-characters-in-string-regex

相关问题