- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理这个每日数据提要。令我惊讶的是,其中一个字段在 MySQL 中看起来并不正确。 (我无法控制谁提供提要。)
所以我做了一个 mysqldump 并发现该记录的邮政编码和城市包含一个非打印字符。它在'vi'中显示如下:<200e>
我在 PHP 中工作,我解析这些数据并将其放入 MySQL 数据库。我对此使用了修剪功能,但这并没有摆脱它。问题是,如果您对 MySQL 数据库中的邮政编码进行查询,它不会找到具有非打印字符的记录。
我想在将其放入 MySQL 数据库之前对其进行清理。
我可以用 PHP 做什么?起初我以为正则表达式只允许 a-z、A-Z 和 0-9,但这对地址不利。地址使用句点、逗号、连字符以及我目前没有想到的其他可能内容。
什么是最好的方法?除了只允许打印字符外,我不知道它到底叫什么来定义它。是否有另一个像 trim 这样的 PHP 函数可以完成这项工作?还是正则表达式?如果是这样,我想要一个例子。谢谢!
我研究了 PHP 函数的使用,并在 PHP.NET 上看到了这个帖子:
<?php
$a = "\tcafé\n";
//This will remove the tab and the line break
echo filter_var($a, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
//This will remove the é.
echo filter_var($a, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
?>
虽然使用 FILTER_FLAG_STRIP_HIGH 确实去除了我提到的在“vi”中看到的 <200e>,但我担心它会去除名称中字母的重音,例如 André。
也许正则表达式是解决方案?
最佳答案
您可以使用 PHP 过滤器:http://www.php.net/manual/en/function.filter-var.php
我建议使用 FILTER_SANITIZE_STRING
过滤器,或任何适合您需要的过滤器。
关于php - 我如何在 PHP 中删除除打印字符以外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13296234/
我是一名优秀的程序员,十分优秀!