我有几个看起来像这样的字符串:
Lasklé
琼斯&乔恩
我试图通过foursquare API发送它们以进行匹配,但是这些字符失败了。有没有办法消毒这些,所以他们只包括英文字母,即结果将是:
Lasklé
琼斯乔恩
因为file_get_contents
请求使用'é'和'&'在URL中导致问题。
我检查了请求是如何发送的,并意识到'&'没有问题并导致问题,是否可以从名称中删除所有非字母/数字?
答案 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);