您现在的位置是:PHP - 技术吧
  • 帝国CMS上传附件保留原文件名

    修改帝国CMS上传文件函数DoTranFile

    修改函数ReturnDoTranFilename,打开文件/e/class/connect.php

    找到function ReturnDoTranFilename($file_name,$classid)

    保留原文件名.png


    修改后的代码

    //上传文件
    function DoTranFile($file, $file_name, $file_type, $file_size, $classid, $ecms = 0) {
        global $public_r, $class_r, $doetran, $efileftp_fr;
        $classid = (int) $classid;
        //文件类型
        $r[filetype] = GetFiletype($file_name);
        // 上传附件保留原文件名
        $filename2 = str_replace($r[filetype], '', $file_name); //获得去掉后缀的文件名
        $mytype = array(".txt", ".rar", ".zip", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pdf"); //定义需要保留原名的文件类型
        //文件名
        $r[insertfile] = ReturnDoTranFilename($file_name, $classid);
        $r[filename] = $r[insertfile].$r[filetype];
        // 保留原文件名
        if( in_array($r[filetype], $mytype) ) {
            $r[filename] = $filename2."_".$r[insertfile].$r[filetype]; //将真实文件名加在随机码的前面中间以_分隔
        } else {
            $r[filename] = $r[insertfile].$r[filetype];
        }
        //日期目录
        $r[filepath] = FormatFilePath($classid, $mynewspath, 0);
        $filepath = $r[filepath] ? $r[filepath].'/' : $r[filepath];
        //存放目录
        $fspath = ReturnFileSavePath($classid);
        $r[savepath] = eReturnEcmsMainPortPath().$fspath['filepath'].$filepath; //moreport
        //附件地址
        $r[url] = $fspath['fileurl'].$filepath.$r[filename];
        //缩图文件
        $r[name] = $r[savepath]."small".$r[insertfile];
        //附件文件
        $r[yname] = $r[savepath].$r[filename];
        $r[tran] = 1;
        //验证类型
        if( CheckSaveTranFiletype($r[filetype]) ) {
            if( $doetran ) {
                $r[tran] = 0;
                return $r;
            } else {
                printerror('TranFail', '', $ecms);
            }
        }
        //上传文件
        $cp = @move_uploaded_file($file, $r[yname]);
        if( empty($cp) ) {
            if( $doetran ) {
                $r[tran] = 0;
                return $r;
            } else {
                printerror('TranFail', '', $ecms);
            }
        }
        DoChmodFile($r[yname]);
        $r[filesize] = (int) $file_size;
        //FileServer
        if( $public_r['openfileserver'] ) {
            $efileftp_fr[] = $r['yname'];
        }
        return $r;
    }

    yuli0927 2019年08月19日 标签: PHP ecms分类: PHP

  • URL安全的字符串base64编码和解码

    // URL安全的字符串base64编码
    function base64_encode_urlsafe($string) {
        $data = base64_encode($string);
        $data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);
        return $data;
    }
    
    // URL安全的字符串base64解码
    function base64_decode_urlsafe($string) {
        $data = str_replace(array('-', '_'), array('+', '/'), $string);
        $mod4 = strlen($data) % 4;
        if( $mod4 ) {
            $data .= substr('====', $mod4);
        }
        return base64_decode($data);
    }

    yuli0927 2019年07月24日 标签: PHP分类: PHP

  • 去掉微信昵称的emoji表情(PHP5.6)

    // 处理不可见字符 去掉EMOJI表情
    function clearEmoji($char) {
    // PHP 5.6已废弃preg_replace
    //    $char = preg_replace("#\\\u[2def]([0-9a-f]{3})#ie", "", json_encode($char));
    //    return json_decode($char, true);
        $str = preg_replace_callback('/./u', function (array $match) {
            return strlen($match[0]) >= 4 ? '' : $match[0];
        }, $str);
        return $str;
    }

    yuli0927 2019年07月24日 标签: PHP Weixin分类: PHP

  • 生成校验位(银行卡最后一位)

    ** 注意:$s必须全部为数字

    // 计算校验位
    function encodeCode($s) {
        $a = $b = $c = $d = $e = 0;
        $s = str_split($s);
        $count = count($s);
        for( $i = 1; $i <= $count; $i++ ) {
            $sc = intval($s[$i - 1]);
            if( $i <= $count && $i % 2 == 0 ) {
                $a += $sc;
            } elseif( $i <= $count - 1 && $i % 2 == 1 ) {
                $b += $sc;
            }
        }
        $c = $a * 3;
        $d = $b + $c;
        if( $d % 10 == 0 ) {
            $e = $d - $d;
        } else {
            $e = $d + (10 - $d % 10) - $d;
        }
        return $e;
    }

    yuli0927 2019年07月24日 标签: PHP分类: PHP

  • 判断是否身份证号码

    计算身份证号码最后一位,判断身份证号码是否正确
    // 身份证校验码,根据国家标准GB 11643-1999 
    function isIdCardNumber($card_number) {
        if( strlen($card_number) != 18 ) {
            return false;
        }
        $crad_id_base = substr($card_number, 0, 17);
        $crad_id_verify = substr($card_number, -1);
        // 加权因子 
        $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3);
        // 校验码对应值 
        $verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        $checksum = 0;
        for( $i = 0; $i < strlen($crad_id_base); $i++ ) {
            $checksum += substr($crad_id_base, $i, 1) * $factor[$i % 10];
        }
        $mod = $checksum % 11;
        if( $crad_id_verify == $verify_number_list[$mod] ) {
            return true;
        }
        return false;
    }

    yuli0927 2019年07月24日 标签: PHP分类: PHP

1 2 3 4 5 6 ... Next »... Last »