繁体   English   中英

PHP 去掉所有非字母

[英]PHP Remove all non letters

我有几个看起来像这样的字符串:

拉斯克莱©
琼斯和乔恩

我正在尝试通过要匹配的四方 API 发送它们,但是这些字符失败了。 有没有办法对这些进行消毒,使它们只包含英文字母,即结果将是:

拉斯克莱
琼斯乔恩

正如在 URL 中使用带有 'é' 和 '&' 的file_get_contents请求时出现的问题。

我检查了请求是如何发送的,并意识到“&”是不需要的并且导致了问题,是否可以从名称中删除所有非字母/数字?

在你传递它们之前,这些字符串是什么样子的? 如果您的字符串看起来像“Lasklé”,那么我认为您在读取字符串时使用了错误的字符集,请尝试使用 UTF-8。

如果字符串在传递之前看起来正确,则应先尝试对字符串进行urlencode

您可以使用 preg_replace() function 使用正则表达式替换字符串的一部分

为了只保留您可以使用的字母,它也会删除空格(从表达式中添加 \s 以保留空格)

preg_replace('/[^a-zA-Z]/','',$string);

要在字符串中保留空格或保留任何字符,您可以将其添加到 []

 preg_replace('/[^a-zA-Z\s]/','',$string);

使用它来逃避(空格和'-')。 适合制作定制 URL

$string=preg_replace("/[^A-Za-z0-9\s\/\-]/", '', $string);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM