我有一组数据可能混合字符,特殊字符和“口音”字符等翻译字母VS特殊字符
我一直在使用PHP inconv与TRANSLIT,但今天发现子弹点被转换为“公牛”。我不知道这样的其他字符不会被转换或删除。 $,*,%等被删除。
基本上我想要做的是保持字母,但只删除'非语言'位。
这是我一直在使用
$slugIt = @iconv('UTF-8', 'ASCII//TRANSLIT', $slugIt); $slugIt = preg_replace("/[^a-zA-Z0-9 -]/", "", $slugIt);当然
的代码,如果我移动的preg_replace为高于inconv功能,他们在翻译前的重音字符将被删除,所以那并不是”不管工作。
对此的任何想法?或TRANSLIT中错过了哪些非字母字符?
---------------------编辑------------------------ --------- 奇怪的是,它似乎并不是将子弹变成“公牛”的TRANSLIT。我评论了替代品,而“公牛”已经回到了重点。不幸的是,我试图用它来创建可读的URL以及其他一些东西,所以我仍然需要进行URL编码。
是否ASCII //忽略走得太远? – rojoca 2009-08-04 01:44:04
我认为它确实太过分了,但是我再看看它。 – pedalpete 2009-08-04 01:50:28
如果你有一个给你麻烦的字符列表,那么http://php.net/strtr可能会有所帮助。有些评论可能是有用的 – rojoca 2009-08-04 02:27:22