php验证方法(手机、email)等工具类

时间:2019-10-22
本文章向大家介绍php验证方法(手机、email)等工具类,主要包括php验证方法(手机、email)等工具类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
    /**
     * @param string $sql
     * @param array $columns
     * @param string $field
     * @param string $other
     * @param string $fileName
     * @param string $db
     * @throws CException
     * @throws PHPExcel_Exception
     * @throws PHPExcel_Reader_Exception
     * @throws PHPExcel_Writer_Exception  PHPExcel---- excel文件下载
     */
    public static function downLoad($sql='',$columns=[],$field='',$other='',$fileName='',$db='db'){
        if(empty($fileName)){
            $fileName=date("YmdHis");
        }
        if(empty($sql)){
            exit('参数不存在');
        }
        if(!is_array($columns)){
            exit('格式错误');
        }
        Yii::$enableIncludePath = false;

        Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
        $phpexcel = new PHPExcel;
        $phpexcel->getProperties()->setCreator("Maarten Balliauw")
            ->setLastModifiedBy("Maarten Balliauw")
            ->setTitle("Office 2007 XLSX Test Document")
            ->setSubject("Office 2007 XLSX Test Document")
            ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
            ->setKeywords("office 2007 openxml php")
            ->setCategory("Test result file");
        $i=0;
        foreach($columns as $key1=>$value1){
            $phpexcel->setActiveSheetIndex(0)->setCellValue(chr(65+$i).'1', $value1);
            $i++;
        }
        $i=0;
        $res = Yii::app()->$db->createCommand($sql)->queryAll();
        foreach($res as $row){
            $j=0;
            $item = self::changeDataType($row,$field,$other); //这里需要根据调用的类具体修改
            foreach($columns as $key1=>$value1){
                $columnvalue=$item["$key1"];
                $phpexcel->setActiveSheetIndex(0)->setCellValueExplicit(chr(65+$j).($i+2),$columnvalue);
                $j++;
            }
            $i++;
        }

        $phpexcel->setActiveSheetIndex(0);
        header('Expires: ' . date(DATE_RFC1123));
        header('Cache-Control: no-store, no-cache, must-revalidate,'. '  pre-check=0, post-check=0, max-age=0');
        header('Last-Modified: ' . date(DATE_RFC1123));
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment; filename="'.$fileName.'.xls"');
        $objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }
    /**
     * @param $row
     * @param $field [字段=>'date|st']
     * @param array $other [] 和field对应
     * @return mixed
     *
     */
    public static function changeDataType($row, $field,$other=[])
    {
        foreach($field as $key=>$value){
            switch($value) {
                case 'date':
                    $row[$key] = date("Y-m-d H:i:s",$row[$key]);
                    break;
                case 'st':
                    $row[$key] = empty($other)? $row[$key]:$other[$key][$row[$key]]; break;
                case 'eq':
                    $row[$key] = empty($other)? $row[$key]:($row[$key]==$other[$key]['eqVal'] ? $other[$key]['yes']:$other[$key]['no']);
                    break;
                case 'filterEmoji':
                    $row[$key] = self::filterEmoji( $row[$key]);
                    break;
            }
        }
        return $row;
    } 
    
       /**
     * @param $filePath
     * @param $ext
     * @return array
     * @throws CException 
     * @throws PHPExcel_Reader_Exception  PHPExcel数据导出
     */
    public static function getExcelData($filePath,$ext){
        Yii::$enableIncludePath = false;
        Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
        $ext= strtolower($ext)==='xls' ?  'Excel5': 'Excel2007';
        $objReader = \PHPExcel_IOFactory::createReader($ext);//创建读取实例
        $objPHPExcel = $objReader->load($filePath, $encode = 'utf-8');//加载文件
        $sheet = $objPHPExcel->getSheet(0);//取得sheet(0)表
        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数
        $arr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
        // 一次读取一列
        $columnLen = array_search($highestColumn,$arr);
        $retArr = array();
        for ($row = 2; $row <= $highestRow; $row++) {
            $row_arr = array();
            for ($column = 0; $column<=$columnLen; $column++) {
                $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
                $row_arr[] = $val;
            }
            $retArr[] = $row_arr;
        }
        return $retArr;
    }
 /**
     * @param $mobile
     * @return bool
     * 验证手机号是否正确
     */
    function isMobile($mobile) {
        if (!is_numeric($mobile)) {
            return false;
        }
        return preg_match('#^1[3,4,5,7,8,9]{1}[\d]{9}$#', $mobile) ? true : false;
    }


    /**
     * 正则表达式验证email格式
     *
     * @param string $str 所要验证的邮箱地址
     * @return boolean
     */
    function isEmail($str) {
        if (!$str) {
            return false;
        }
        return preg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is', $str) ? true : false;
    }

原文地址:https://www.cnblogs.com/-lin/p/11719961.html