PHP删除所有非字母和数字

时间:2014-03-26 08:53:03

标签: php regex

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

Lasklé
琼斯&乔恩

我试图通过foursquare API发送它们以进行匹配,但是这些字符失败了。有没有办法消毒这些,所以他们只包括英文字母,即结果将是:

Lasklé
琼斯乔恩

因为file_get_contents请求使用'é'和'&'在URL中导致问题。

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你可以使用preg_replace()函数来替换使用正则表达式

的字符串部分

只保留您可以使用的字母,如下所示也会删除空格(从表达式添加\ s以保留空间)

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

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

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

答案 2 :(得分:0)

用它来逃避(空格和' - ')。适合制作自定义网址

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