如何获得所有基于拉丁字母的字符列表,但不包括';特殊字符';在PHP中


How to get a list of all Latin based alphabet characters but exclude 'special characters' in PHP

我正在开发一个基于PHP的系统,该系统计划在欧洲各地推出,对于某个表单字段,我试图将输入限制为仅字母字符。

然而,这可以伪装成英语字母表,也可以伪装成德语、拉脱维亚语、波兰语、法语、西班牙语等字母表。

我在看ISO-8859-1(http://en.wikipedia.org/wiki/Western_Latin_character_sets_(计算)#Comparison_table),就字母表而言,这似乎相当完整。但我看不出简单的方法来区分字母表字符和我在英语中所知道的"特殊字符"。

我也意识到,就ISO-8859-1而言,我可能找错了树。我已经多年没有以类似的方式处理角色集了,所以也许有更好的方法来实现这一点?

脑海中浮现的特殊字符是:

  • `
  • %

还有更多。

有现成的函数可以用PHP或任何其他快捷方式完成这项任务吗?

您可以手动编写特殊字符并使用函数preg_match():

$chars="ÉäÖÅå!%"//添加您也可以添加,通常的拉丁字符已经添加

if (isset($_GET['name'])){
    if (preg_match("/^[A-Za-z{$chars}]+$/", $_GET['name'])){
        echo "Input ok, proceed") ;
       //Do stuff
    } else {
        echo "Some of characters in your input are not allowed" ;
    }
} else {
    echo "The no form submitted" ;
}

这个库似乎在做你想要做的事情:https://github.com/jbroadway/urlify