从 PHP 字符串中删除字符
-
20-09-2019 - |
题
我正在接受来自提要的字符串以在屏幕上显示,该字符串可能包含也可能不包含我想要过滤掉的一些垃圾。我根本不想过滤普通符号。
我想要删除的值如下所示:�
我只想删除这个。相关技术是PHP。
建议表示赞赏。
解决方案 2
感谢您的答复,各位。不幸的是,这些提交了以下几个问题:
错出于明显的原因:
ereg_replace("[^A-Za-z0-9]", "", $string);
此:
s/[\u00FF-\uFFFF]//
也使用正则表达式的弃用EREG形式也当我转换为预浸因为范围只是过大,正则表达式处理没有工作。另外,还有一些在该范围内,将允许垃圾渗出通孔。
此建议:
这是一个编码问题;你不应该试图清除该伪造的字符,但明白,为什么你接受他们炒。
而有效的,是没有好,因为我没有在如何我接收到的数据进行编码的任何控制。它来自外部来源。有时有垃圾在那里,有时没有。
所以,我想出了解决办法是比较脏,但在没有东西更强大的,我只是接受所有标准的字母,数字和符号,并丢弃其余部分。
这似乎为现在的工作。该解决方案如下:
$fixT = str_replace("£", "£", $string);
$fixT = str_replace("€", "€", $fixT);
$fixT = preg_replace("/[^a-zA-Z0-9\s\.\/:!\[\]\*\+\-\|\<\>@#\$%\^&\(\)_=\';,'\?\\\{\}`~\"]/", "", $fixT);
如果任何人有任何更好的想法,我仍然渴望听到他们的声音。欢呼声。
其他提示
这是一个编码问题;你不应该试图清除该伪造的字符,但明白,为什么你接受他们炒。
尝试让你的数据为Unicode,或使你的信息源提供者一个协议,你们都使用相同的编码。
您正在寻找是您的字体可显示的字形范围之外的字符。你可以发现你的字体可以显示,然后创建一个正则表达式,将一个空字符串替换高于任何有价值的东西的最大Unicode值。一个例子是
s/[\u00FF-\uFFFF]//
这会剥夺上述字符255任何东西。
这将是很难为你做,因为你没有什么过滤和什么保持了坚实的定义。通常情况下,字符显示为空的方块是什么,你正在使用的字体不具有字形,所以“显示了类似这样的东西:”的定义是可怕的不精确
。这将是更好的为您到底是什么人物的的决定的有效(这始终是无论如何一个好办法,用任何类型的数据清理),丢弃一切,是不是其中之一。 PHP的过滤器功能是一种可能性要做到这一点,取决于复杂性和健壮性您所需要的水平。
如果您不能从饲料中的数据解决问题,需要过滤的信息,那么这可能帮助:
PHP5 filter_input是用于过滤输入串非常好,并且允许rlexability相当数量的
filter_input(input_type, variable, filter, options)
您还可以过滤所有形式的数据在一个行,如果它需要相同的过滤:)
这里有一些较好的实施例和相关的详细信息:
http://www.w3schools.com/PHP/func_filter_input.asp
在PHP网站在这里有选项的详细信息:验证过滤器
尝试这个:
- 手动从源下载示例。
- 打开它在 记事本++ 或其他高级文本编辑器(Linux 上的 KATE 对此很有用)。
- 尝试更改编码并从一种编码转换为另一种编码。
如果您发现一个设置可以使字符正确显示,那么您需要使用该编码对您的网站进行编码,或者将其从该编码转换为您在网站上使用的任何编码。
您好友
try this Regular Expression to remove unicode char from the string :
/*\\u([0-9]|[a-fA-F])([0-9]|[a-fA-F])([0-9]|[a-fA-F])([0-9]|[a-fA-F])/
谢谢, Chintu(prajapati.chintu.001@gmail.com)