PHP 判断字符串是否含有特殊字符及符号

2024-02-19 16:04:54 举报文章
//by www.qzphp.cn
function check_str($str){
        //文件名不包含以下任何字符:”(双引号)、*(星号)、?(问号)、\(反斜杠)、|(竖线)、/ (正斜杠)、 : (冒号)。
        //2、文件名不要以空格、句点、连字符或下划线开头或结尾。
        //3、不要在文件名中使用表情符号。
        //判断是否下划线开头或结尾
        $first = (substr($str, 0, strlen('_')) === '_')?true:false; //判断是否以下划线开头
        if($first){
            return $first;
        }
        $end = (substr($str, strpos($str,'_')) === '_')?true:false; //判断是否以下划线结尾
        if($end){
            return $end;
        }
        //$前要加反斜杠
        $specialChars= "~~·`!!@#\$¥%^…&*()()—-=+[]{}【】、|\\;:;:'\"“”‘’,./<>《》??,。";
        //特殊符号数组
        $specialArr=array();
        $len= mb_strlen($specialChars,'UTF-8');
        for($i=0;$i<$len;$i++){
            $specialArr[]=mb_substr($specialChars, $i,1,'UTF-8');
        }
        //待比较字符串数组
        $arr=array();
        $len= mb_strlen($str,'UTF-8');
        for($i=0;$i<$len;$i++){
            $arr[]=mb_substr($str, $i,1,'UTF-8');
        }
        foreach ($arr as $v){
            if(in_array($v, $specialArr)){
                return true;
            }
        }
        return false;
    }
如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!