gpt4 book ai didi

php - 我如何在 PHP 中删除除打印字符以外的所有内容?

转载 作者:行者123 更新时间:2023-12-02 07:38:57 25 4
gpt4 key购买 nike

我正在处理这个每日数据提要。令我惊讶的是,其中一个字段在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com