检测特殊字符PHP

时间:2016-07-12 19:46:28

标签: php

我正在尝试检查字符串是否包含任何特殊字符,因此我知道在我的脚本中如何处理它。

继承我所拥有的:

if (preg_match('/[^A-Z0-9_@£\$¥èéùìòÇØø\+%&\!"#'\(\)\*,\-\.ÅåÆæߤ:;<=>?¡ÄÖÑܧ¿äöñüà€ΓΔΘΛΞΠΣΦΨΩαβγδεζηθικλμνξοπρστυφχψωςέάόίώύήϊϋΐΰΆΈΊΉΌΎΏXΥΡΟΝΜΚΗΖΕΙΤΑΧΒ\^\{\}\\\[~\]\|\/ \n\r]/',$message)) {}

但是我收到以下错误syntax error, unexpected T_NS_SEPARATOR

2 个答案:

答案 0 :(得分:1)

你忘记了一些逃脱:

if (preg_match('/[^A-Z0-9_@£\$¥èéùìòÇØø\+%&\!"#'\(\)\*,
               ^-start string                  ^---end string

由于这是整个模式的'引用字符串,因此模式必须内的所有'都会被转义。

答案 1 :(得分:0)

您可以将所有字母数字字符与字符串进行比较,以检查是否有任何特殊字符:

$temp = '$tack0verflow_';

if(strlen($temp) == strlen(preg_replace("/[^a-zA-Z0-9]+/", "", $temp))){
    // No special characters
} else {
    // Has special characters
}