JavaScript常用函数封装方法汇总

1.加载js||css||style

const loadRes = function(name, type, fn) { // 加载js || css || style
    let ref
    if (type === 'js') { // 外部js
        ref = document.createElement('script')
        ref.setAttribute('type', 'text/JavaScript')
        ref.setAttribute('src', name)
    } else if (type === 'css') { // 外部css
        ref = document.createElement('link')
        ref.setAttribute('rel', 'stylesheet')
        ref.setAttribute('type', 'text/css')
        ref.setAttribute('href', name)
    } else if (type === 'style') { // style
        ref = document.createElement('style')
        ref.innerhtml = name
    }
    if (typeof ref !== 'undefined') {
        document.getElementsByTagName('head')[0].appendChild(ref)
        ref.onload = function() { // 加载完成执行
            typeof fn === 'function' && fn()
        }
    }
}

2.获取url参数

const getUrlParam = function(name) { // 获取url参数
    let reg = new RegExp('(^|&?)' + name + '=([^&]*)(&|$)', 'i')
    let r = window.location.href.substr(1).match(reg)
    if (r != null) {
        return decodeURI(r[2])
    }
    return undefined
}

3.本地存储

const store = { // 本地存储
    set: function(name, value, day) { // 设置
        let d = new Date()
        let time = 0
        day = (typeof(day) === 'undefined' || !day) ? 1 : day // 时间,默认存储1天
        time = d.setHours(d.getHours() + (24 * day)) // 毫秒
        localStorage.setItem(name, JSON.stringify({
            data: value,
            time: time
        }))
    },
    get: function(name) { // 获取
        let data = localStorage.getItem(name)
        if (!data) {
            return null
        }
        let obj = JSON.parse(data)
        if (new Date().getTime() > obj.time) { // 过期
            localStorage.removeItem(name)
            return null
        } else {
            return obj.data
        }
    },
    clear: function(name) { // 清空
        if (name) { // 删除键为name的缓存
            localStorage.removeItem(name)
        } else { // 清空全部
            localStorage.clear()
        }
    }
}

4.cookie操作【set,get,del】

const cookie = {
    set: function(name, value, day) {
        let oDate = new Date()
        oDate.setDate(oDate.getDate() + (day || 30))
        document.cookie = name + '=' + value + ';expires=' + oDate + "; path=/;"
    },
    get: function(name) {
        let str = document.cookie
        let arr = str.split('; ')
        for (let i = 0; i < arr.length; i++) {
            let newArr = arr[i].split('=')
            if (newArr[0] === name) {
                return newArr[1]
            }
        }
    },
    del: function(name) {
        this.set(name, '', -1)
    }
}

5.Js获取元素样式【支持内联】

const getRealStyle = function(obj, styleName) {
    var realStyle = null
    if (obj.currentStyle) {
        realStyle = obj.currentStyle[styleName]
    } else if (window.getComputedStyle) {
        realStyle = window.getComputedStyle(obj, null)[styleName]
    }
    return realStyle
}

6.时间格式化 【‘yyyy-MM-dd hh:mm:ss’,时间】

const formatDate = function(fmt, date) {
    if (typeof date !== 'object') {
        date = !date ? new Date() : new Date(date)
    }
    var o = {
        'M+': date.getMonth() + 1, // 月份
        'd+': date.getDate(), // 日
        'h+': date.getHours(), // 小时
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        'S': date.getMilliseconds() // 毫秒
    }
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    for (var k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
        }
    }
    return fmt
}
// console.log(formatDate('yyyy-MM-dd hh:mm:ss',new Date())) // 2021-09-14 10:20:27
// console.log(formatDate('yyyy-MM-dd',new Date())) // 2021-09-14
// console.log(formatDate('MM-dd',new Date())) // 09-14
// console.log(formatDate('MM:dd',new Date())) // 09:14

7.原生ajax操作

const ajax = function(conf) { // ajax操作
    let url = conf.url,
        data = conf.data,
        senData = [], // 封装后的数据
        async = conf.async !== undefined ? conf.async : true, // ture为异步请求
        type = conf.type || 'get', // 默认请求方式get
        dataType = conf.dataType || 'json',
        contenType = conf.contenType || 'application/x-www-form-urlencoded',
        success = conf.success,
        error = conf.error,
        isForm = conf.isForm || false, // 是否formdata
        header = conf.header || {}, // 头部信息
        xhr = '' // 创建ajax引擎对象
    if (data == null) {
        senData = ''
    } else if (typeof data === 'object' && !isForm) { // 如果data是对象,转换为字符串
        for (var k in data) {
            senData.push(encodeURIComponent(k) + '=' + encodeURIComponent(data[k]))
        }
        senData = senData.join('&')
    } else {
        senData = data
    }
    try {
        xhr = new ActiveXObject('microsoft.xmlhttp') // IE内核系列浏览器
    } catch (e1) {
        try {
            xhr = new XMLHttpRequest() // 非IE内核浏览器
        } catch (e2) {
            if (error != null) {
                error('不支持ajax请求')
            }
        }
    };
    xhr.open(type, type !== 'get' ? url : url + '?' + senData, async)
    if (type !== 'get' && !isForm) {
        xhr.setRequestHeader('content-type', contenType)
    }
    for (var h in header) {
        xhr.setRequestHeader(h, header[h])
    }
    xhr.send(type !== 'get' ? senData : null)
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4) {
            if (xhr.status >= 200 && xhr.status < 300) {
                if (dataType === 'json' && success != null) {
                    let res = ''
                    try {
                        res = eval('(' + xhr.responseText + ')')
                    } catch (e) {
                        console.log(e)
                    }
                    success(res) // 将json字符串转换为js对象
                };
            } else {
                if (error != null) {
                    error('通讯失败!' + xhr.status)
                }
            }
        }
    }
}

8.fetch请求的封装

const fetch = function(url, setting) { // fetch请求的封装
    let opts = { // 设置参数的初始值
        method: (setting.method || 'GET').toUpperCase(), // 请求方式
        headers: setting.headers || {}, // 请求头设置
        credentials: setting.credentials || true, // 设置cookie是否一起发送
        body: setting.body || {},
        mode: setting.mode || 'no-cors', // 可以设置 cors, no-cors, same-origin
        redirect: setting.redirect || 'follow', // follow, error, manual
        cache: setting.cache || 'default' // 设置 cache 模式 (default, reload, no-cache)
    }
    let dataType = setting.dataType || 'json' // 解析方式
    let data = setting.data || '' // 参数
    let paramsFormat = function(obj) { // 参数格式
        var str = ''
        for (var i in obj) {
            str += `${i}=${obj[i]}&`
        }
        return str.split('').slice(0, -1).join('')
    }

    if (opts.method === 'GET') {
        url = url + (data ? `?${paramsFormat(data)}` : '')
    } else {
        setting.body = data || {}
    }
    return new Promise((resolve, reject) => {
        fetch(url, opts).then(async res => {
            let data = dataType === 'text' ? await res.text() : dataType === 'blob' ? await res.blob() : await res.json()
            resolve(data)
        }).catch(e => {
            reject(e)
        })
    })
}

9.设备判断

const isDevice = function() { // 判断是android还是ios还是web
    var ua = navigator.userAgent.toLowerCase()
    if (ua.match(/iPhone\sOS/i) === 'iphone os' || ua.match(/iPad/i) === 'ipad') { // ios
        return 'iOS'
    }
    if (ua.match(/Android/i) === 'android') {
        return 'Android'
    }
    return 'Web'
}

10.判断是否为微信

const isWx = function() { // 判断是否为微信
    var ua = window.navigator.userAgent.toLowerCase()
    if (ua.match(/MicroMessenger/i) === 'micromessenger') {
        return true
    }
    return false
}

11.文本复制功能

const copyTxt = function(text, fn) { // 复制功能
    if (typeof document.execCommand !== 'function') {
        console.log('复制失败,请长按复制')
        return
    }
    var dom = document.createElement('textarea')
    dom.value = text
    dom.setAttribute('style', 'display: block;width: 1px;height: 1px;')
    document.body.appendChild(dom)
    dom.select()
    var result = document.execCommand('copy')
    document.body.removeChild(dom)
    if (result) {
        console.log('复制成功')
        typeof fn === 'function' && fn()
        return
    }
    if (typeof document.createRange !== 'function') {
        console.log('复制失败,请长按复制')
        return
    }
    var range = document.createRange()
    var div = document.createElement('div')
    div.innerhtml = text
    div.setAttribute('style', 'height: 1px;fontSize: 1px;overflow: hidden;')
    document.body.appendChild(div)
    range.selectNode(div)
    var selection = window.getSelection()
    console.log(selection)
    if (selection.rangeCount > 0) {
        selection.removeAllRanges()
    }
    selection.addRange(range)
    document.execCommand('copy')
    typeof fn === 'function' && fn()
    console.log('复制成功')
}

12.判断是否是一个数组

const isArray = function(arr) { // 判断是否是一个数组
    return Object.prototype.toString.call(arr) === '[object Array]'
}

13.判断两个数组是否相等

const arrayEqual = function(arr1, arr2) { //判断两个数组是否相等
    if (arr1 === arr2) return true;
    if (arr1.length != arr2.length) return false;
    for (let i = 0; i < arr1.length; ++i) {
        if (arr1[i] !== arr2[i]) return false;
    }
    return true;
}

14.时间与时间戳转换

const stamp = { // 时间,时间戳转换
    getTime: function(time) { // 时间转10位时间戳
        let date = time ? new Date(time) : new Date()
        return Math.round(date.getTime() / 1000)
    },
    timeToStr: function(time, fmt) { // 10位时间戳转时间
        return new Date(time * 1000).pattern(fmt || 'yyyy-MM-dd')
    }
}

15.常用正则验证

const checkStr = function(str, type) { // 常用正则验证,注意type大小写
    switch (type) {
        case 'phone': // 手机号码
            return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str)
        case 'tel': // 座机
            return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str)
        case 'card': // 身份证
            return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)
        case 'pwd': // 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
            return /^[a-zA-Z]\w{5,17}$/.test(str)
        case 'postal': // 邮政编码
            return /[1-9]\d{5}(?!\d)/.test(str)
        case 'QQ': // QQ号
            return /^[1-9][0-9]{4,9}$/.test(str)
        case 'email': // 邮箱
            return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str)
        case 'money': // 金额(小数点2位)
            return /^\d*(?:\.\d{0,2})?$/.test(str)
        case 'URL': // 网址
            return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
        case 'IP': // IP
            return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str)
        case 'date': // 日期时间
            return /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str) ||
            /^(\d{4})\-(\d{2})\-(\d{2})$/.test(str)
        case 'number': // 数字
            return /^[0-9]$/.test(str)
        case 'english': // 英文
            return /^[a-zA-Z]+$/.test(str)
        case 'chinese': // 中文
            return /^[\u4E00-\u9FA5]+$/.test(str)
        case 'lower': // 小写
            return /^[a-z]+$/.test(str)
        case 'upper': // 大写
            return /^[A-Z]+$/.test(str)
        // case 'HTML': // HTML标记
        //     return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str)
        default:
            return true
    }
}

16.是否为PC端

const isPC = function() { // 是否为PC端
    let userAgentInfo = navigator.userAgent
    let Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']
    let flag = true
    for (let v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false
            break
        }
    }
    return flag
}

17.去除字符串空格

const trim = function(str, type) { // 去除空格, type:  1-所有空格  2-前后空格  3-前空格 4-后空格
    type = type || 1
    switch (type) {
        case 1:
            return str.replace(/\s+/g, '')
        case 2:
            return str.replace(/(^\s*)|(\s*$)/g, '')
        case 3:
            return str.replace(/(^\s*)/g, '')
        case 4:
            return str.replace(/(\s*$)/g, '')
        default:
            return str
    }
}

18.字符串大小写转换

const changeCase = function(str, type) { // 字符串大小写转换 type:  1:首字母大写  2:首页母小写  3:大小写转换  4:全部大写  5:全部小写
    type = type || 4
    switch (type) {
        case 1:
            return str.replace(/\b\w+\b/g, function(word) {
                return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()
            })
        case 2:
            return str.replace(/\b\w+\b/g, function(word) {
                return word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase()
            })
        case 3:
            return str.split('').map(function(word) {
                if (/[a-z]/.test(word)) {
                    return word.toUpperCase()
                } else {
                    return word.toLowerCase()
                }
            }).join('')
        case 4:
            return str.toUpperCase()
        case 5:
            return str.toLowerCase()
        default:
            return str
    }
}

19.过滤html代码

const filterTag = function(str) { // 过滤html代码(把<>转换)
    str = str.replace(/&/ig, '&')
    str = str.replace(/</ig, '<')
    str = str.replace(/>/ig, '>')
    str = str.replace(' ', ' ')
    return str
}

20.生成随机数范围

const random = function(min, max) { // 生成随机数范围
    if (arguments.length === 2) {
        return Math.floor(min + Math.random() * ((max + 1) - min))
    } else {
        return null
    }
}

21.阿拉伯数字转中文大写数字

const numberToChinese = function(num){
    let AA = new Array('零','一','二','三','四','五','六','七','八','九','十')
    let BB = new Array('','十','百','千','万','亿','点','')
    let a = (''+num).replace(/(^0*)/g,'').split('.')
    let k = 0
    let re = ''
    for(let i = a[0].length-1;i >= 0;i--){
        switch(k){
            case 0:
                re = BB[7] + re
                break
            case 4:
                if (!new RegExp('0{4}//d{' + (a[0].length - i - 1) + '}$').test(a[0])) {
                    re = BB[4] + re
                }
                break
            case 8:
                re = BB[5] + re
                BB[7] = BB[5]
                k = 0
                break
        }
        if (k % 4 === 2 && a[0].charAt(i + 2) !== 0 && a[0].charAt(i + 1) === 0) {
            re = AA[0] + re
        }
        if (a[0].charAt(i) !== 0) {
            re = AA[a[0].charAt(i)] + BB[k % 4] + re
        }
        k++
    }
    if (a.length > 1) { // 加上小数部分(如果有小数部分)
        re += BB[6]
        for (let i = 0; i < a[1].length; i++) {
            re += AA[a[1].charAt(i)]
        }
    }
    if (re === '一十') {
        re = '十'
    }
    if (re.match(/^一/) && re.length === 3) {
        re = re.replace('一', '')
    }
    return re
}
// console.log(numberToChinese(145.3)) // 一百四十五点三

22.原生dom操作

const dom = {
    $:function(selector){
        let type = selector.substring(0,1)
        if(type === '#'){
            if(document.querySelector) return document.querySelector(selector)
            return document.getElementById(selector.substring(1))
        } else if(type === '.') {
            if (document.querySelecotorAll) return document.querySelectorAll(selector)
            return document.getElementsByClassName(selector.substring(1))
        } else {
            return document['querySelectorAll' ? 'querySelectorAll' : 'getElementsByTagName'](selector)
        }
    },
    hasClass:function(ele,name){ /* 检测类名 */
        return ele.className.match(new RegExp('(\\s|^)' + name + '(\\s|$)'))
    },
    addClass: function(ele, name) { /* 添加类名 */
        if (!this.hasClass(ele, name)) ele.className += ' ' + name
    },
    removeClass: function(ele, name) { /* 删除类名 */
        if (this.hasClass(ele, name)) {
            let reg = new RegExp('(\\s|^)' + name + '(\\s|$)')
            ele.className = ele.className.replace(reg, '')
        }
    },
    replaceClass: function(ele, newName, oldName) { /* 替换类名 */
        this.removeClass(ele, oldName)
        this.addClass(ele, newName)
    },
    siblings: function(ele) { /* 获取兄弟节点 */
        console.log(ele.parentNode)
        let chid = ele.parentNode.children,
        eleMatch = []
        for (let i = 0, len = chid.length; i < len; i++) {
            if (chid[i] !== ele) {
                eleMatch.push(chid[i])
            }
        }
        return eleMatch
    },
    getByStyle: function(obj, name) { /* 获取行间样式属性 */
        if (obj.currentStyle) {
            return obj.currentStyle[name]
        } else {
            return getComputedStyle(obj, false)[name]
        }
    },
    domToStirng: function(htmlDOM) { /* DOM转字符串 */
        var div = document.createElement('div')
        div.appendChild(htmlDOM)
        return div.innerHTML
    },
    stringToDom: function(htmlString) { /* 字符串转DOM */
        var div = document.createElement('div')
        div.innerHTML = htmlString
        return div.children[0]
    }
}

23.判断图片加载完成

const imgLoadAll = function(arr, callback) { // 图片加载
    let arrImg = []
    for (let i = 0; i < arr.length; i++) {
        let img = new Image()
        img.src = arr[i]
        img.onload = function() {
            arrImg.push(this)
            if (arrImg.length == arr.length) {
                callback && callback()
            }
        }
    }
}

24.音频加载完成操作

const loadAudio = function(src, callback) { // 音频加载
    var audio = new Audio(src)
    audio.onloadedmetadata = callback
    audio.src = src
}

25.光标所在位置插入字符

const insertAtCursor = function(dom, val) { // 光标所在位置插入字符
    if (document.selection) {
        dom.focus()
        let sel = document.selection.createRange()
        sel.text = val
        sel.select()
    } else if (dom.selectionStart || dom.selectionStart == '0') {
        let startPos = dom.selectionStart
        let endPos = dom.selectionEnd
        let restoreTop = dom.scrollTop
        dom.value = dom.value.substring(0, startPos) + val + dom.value.substring(endPos, dom.value.length)
        if (restoreTop > 0) {
            dom.scrollTop = restoreTop
        }
        dom.focus()
        dom.selectionStart = startPos + val.length
        dom.selectionEnd = startPos + val.length
    } else {
        dom.value += val
        dom.focus()
    }
}

26.图片地址转base64

const getBase64 = function(img) { //传入图片路径,返回base64,使用getBase64(url).then(function(base64){},function(err){}); 
    let getBase64Image = function(img, width, height) { //width、height调用时传入具体像素值,控制大小,不传则默认图像大小
        let canvas = document.createElement("canvas");
        canvas.width = width ? width : img.width;
        canvas.height = height ? height : img.height;
        let ctx = canvas.getContext("2d");
        ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
        let dataURL = canvas.toDataURL();
        return dataURL;
    }
    let image = new Image();
    image.crossOrigin = '';
    image.src = img;
    let deferred = $.Deferred();
    if (img) {
        image.onload = function() {
            deferred.resolve(getBase64Image(image));
        }
        return deferred.promise();
    }
}

27.base64图片下载功能

const downloadFile = function(base64, fileName) { //base64图片下载功能
    let base64ToBlob = function(code) {
        let parts = code.split(';base64,');
        let contentType = parts[0].split(':')[1];
        let raw = window.atob(parts[1]);
        let rawLength = raw.length;
        let uInt8Array = new Uint8Array(rawLength);
        for (let i = 0; i < rawLength; ++i) {
            uInt8Array[i] = raw.charCodeAt(i);
        }
        return new Blob([uInt8Array], {
            type: contentType
        });
    };
    let aLink = document.createElement('a');
    let blob = base64ToBlob(base64); //new Blob([content]);
    let evt = document.createEvent("HTMLEvents");
    evt.initEvent("click", true, true); //initEvent不加后两个参数在FF下会报错  事件类型,是否冒泡,是否阻止浏览器的默认行为
    aLink.download = fileName;
    aLink.href = URL.createObjectURL(blob);
    aLink.click();
}

28.浏览器是否支持webP格式图片

const isSupportWebP = function() { //判断浏览器是否支持webP格式图片
    return !![].map && document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0;
}

29.url参数转对象

const parseQueryString = function(url) { //url参数转对象
    url = !url ? window.location.href : url;
    if (url.indexOf('?') === -1) {
        return {};
    }
    let search = url[0] === '?' ? url.substr(1) : url.substring(url.lastIndexOf('?') + 1);
    if (search === '') {
        return {};
    }
    search = search.split('&');
    let query = {};
    for (let i = 0; i < search.length; i++) {
        let pair = search[i].split('=');
        query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
    }
    return query;
}

30.对象序列化【对象转url参数】

const stringfyQueryString = function(obj) { //对象序列化【对象转url参数】
    if (!obj) return '';
    let pairs = [];
    for (let key in obj) {
        let value = obj[key];
        if (value instanceof Array) {
            for (let i = 0; i < value.length; ++i) {
                pairs.push(encodeURIComponent(key + '[' + i + ']') + '=' + encodeURIComponent(value[i]));
            }
            continue;
        }
        pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));
    }
    return pairs.join('&');
}

31.H5软键盘缩回、弹起回调

const h5Resize = function(downCb, upCb) { //当软件键盘弹起会改变当前 window.innerHeight,监听这个值变化 [downCb 当软键盘弹起后,缩回的回调,upCb 当软键盘弹起的回调]
    var clientHeight = window.innerHeight;
    downCb = typeof downCb === 'function' ? downCb : function() {}
    upCb = typeof upCb === 'function' ? upCb : function() {}
    window.addEventListener('resize', () => {
        var height = window.innerHeight;
        if (height === clientHeight) {
            downCb();
        }
        if (height < clientHeight) {
            upCb();
        }
    });
}

32.函数防抖

const debounce = function(func, wait, immediate) { //函数防抖[func 函数,wait 延迟执行毫秒数,immediate true 表立即执行,false 表非立即执行,立即执行是触发事件后函数会立即执行,然后n秒内不触发事件才能继续执行函数的效果]
    let timeout;
    return function() {
        let context = this;
        let args = arguments;
        if (timeout) clearTimeout(timeout);
        if (immediate) {
            var callNow = !timeout;
            timeout = setTimeout(() => {
                timeout = null;
            }, wait)
            if (callNow) func.apply(context, args)
        } else {
            timeout = setTimeout(function() {
                func.apply(context, args)
            }, wait);
        }
    }
}

33.函数节流

const throttle = function(func, wait ,type) { //函数节流 [func 函数 wait 延迟执行毫秒数 type 1 表时间戳版,2 表定时器版]
    if(type===1){
        let previous = 0;
    }else if(type===2){
        let timeout;
    }
    return function() {
        let context = this;
        let args = arguments;
        if(type===1){
            let now = Date.now();
            if (now - previous > wait) {
                func.apply(context, args);
                previous = now;
            }
        }else if(type===2){
            if (!timeout) {
                timeout = setTimeout(() => {
                    timeout = null;
                    func.apply(context, args)
                }, wait)
            }
        }
    }
}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
史上最全韩顺平毕业班视频------这里只有10月份,8,9,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3.符号实体 url说明 超链接 发送电邮 8-11 4.图像 表格 实际应用-菜谱 课堂练习-课程表 8-11 5.无序列表 有序列表 框架 8-12 1.浮动窗口 表单及表单控件① 8-12 2.表单及表单控件② 8-12 3.多媒体页面 标签汇总① 地图映射1 8-12 4.多媒体页面 标签汇总① 地图映射2 8-12 5.多媒体页面 标签汇总① 地图映射3 8-12 6.多标签汇总② 线包字效果 测试题 8-13 1.div+css开山篇 8-13 2.初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 2.div+css作业评讲② 8-15 3.div+css作业评讲③ 8-15 4.浮动 8-15 5.网站推荐 定位 8-15 6.仿sohu首页面布局 可爱屋首页面 8-16 1.动态网页技术介绍 php基本介绍 8-16 2.php快速入门 bs和cs介绍 8-16 3.web服务器介绍 apache服务器安装 8-16 4.apache服务器使用及配置① 启动和停止 端口配置 8-16 5.apache服务器使用及配置② apache目录结构 8-16 6.apache服务器使用及配置③ apache虚拟目录 8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的搭建和使用② 自定义安装 8-17 5.php开发环境的搭建和使用③ 安装并配置discuz论坛 8-19 1.解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② 比较运算符 逻辑运算符 8-20 1.三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-22 1.break语句 continue语句 常量 8-22 2.函数基本概念 函数快速入门 8-22 3.函数使用函数调用初步理解 8-22 4.函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用细节① 8-23 6.数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组作业评讲③ 8-24 7.类与对象的基本概念 8-26 1.成员属性 如何创建对象 8-26 2.对象在内存中存在形式 函数传递对象方式 8-26 3.函数传递基本数据类型和数组方式 成员方法① 8-26 4.成员方法② 8-26 5.作业评讲 8-27 mysql1 8-27 mysql2 8-28 1.mysql 8-28 2.mysql 8-28 3.mysql 8-28 4.mysql 8-28 5.mysql 8-28 6.mysql 8-30 1.mysql 8-30 2.mysql 8-30 3.mysql 8-30 4.mysql 8-30 5.mysql 8-31 1 8-31 2.外键、索引 8-31 3.事务处理 8-31 4 8-31 5 8-31 6 9-10 1.回顾 9-10 2.错误和异常处理介绍 处理错误方式①-die 9-10 3.处理错误方式②-错误处理器 错误级别 处理错误方式③-错误触发器 9-10 4.php错误日志 9-10 5.php异常处理 9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http响应详解(文件下载) 9-13 4.http协议深度剖析⑤-http响应详解(作业评讲) 9-13 5.php数据库编程①-使用mysql扩展库 9-13 6.php数据库编程②-使用mysql扩展库 9-13 7.php数据库编程③-使用mysql扩展库 9-14 1.回顾 9-14 2.php数据库编程④-使用mysql扩展库(在线词典案例) 9-14 3.php数据库编程⑤-使用mysql扩展库(在线词典案例) 9-14 4.php数据库编程⑥-使用mysqli扩展库 9-14 5.php数据库编程⑦-使用mysqli扩展库 9-14 6.php数据库编程⑧-使用mysqli扩展库(布置练习) 9-14 7.php数据库编程⑨-使用mysqli扩展库增强(批量执行sql和事务控制) 9-17 1.回顾 9-17 2.php数据库编程(10)-使用mysqli扩展库增强(预处理技术) 9-17 3.php数据库编程(11)-使用mysqli扩展库增强(预处理技术) 9-17 4.预定义超全局数组①-原理分析 $_GET 9-17 5.预定义超全局数组②-$_POST $_REQUEST 9-17 6.预定义超全局数组③-$_SERVER $_ENV $GLOBALS 9-17 7.zend studio使用 项目开发五个阶段 雇员管理系统① 9-19 1.回顾 9-19 2.雇员管理系统②-model1模式简单登录 9-19 3.雇员管理系统③-model1模式数据库登录 9-19 4.雇员管理系统④-model1模式雇员分页 9-19 5.雇员管理系统⑤-分层模式管理员登录 9-20 1.回顾 9-20 2.雇员管理系统⑥-分层模式雇员分页 9-20 3.雇员管理系统⑦-分层模式整体翻页 9-20 4.雇员管理系统⑧-分层模式通用分页模块 9-20 5.雇员管理系统⑨-mvc模式介绍 9-21 1.回顾 9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-雇员管理系统使用cookie技术 1.显示上传登录时间2.保留登录id 9-23 1回顾 9-23 2.session①-session原理介绍 保存session 9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session⑤-session配置 session的gc机制 自定义session处理器 9-24 0.回顾 9-24 1.回顾2 9-24 2.php文件编程①-文件操作原理 如何获取文件信息 如何读文件 9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的输出 9-27 3 循环控制 js的调试方法 9-27 4 函的数定义分类及使用 9-27 5 函数的调用 递归及深入使用 9-27 6 一维?榧笆樵谀诖嬷械拇嬖谛问? 9-27 7 常用数组的属性及使用方法 9-28 1课程回顾 9-28 2 二维数组的定义使用 数组排序 9-28 3 顺序查找 二分查找 9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 引用实体 参数实体 ide开发xml 9-5 5.php xml编程⑤-复杂的dtd综合练习 9-5 6.php xml编程⑥-dom基本概念 phpdom编程(1) 9-6 1.回顾 9-6 2.php xml编程⑦-phpdom编程(2) 9-6 3.php xml编程⑧-phpdom编程(3) 综合练习-基于xml的在线词典 9-6 4.php xml编程⑨-综合练习-基于xml的在线词典 phpdom使用xpath 9-6 5.php xml编程(10)-SimpleXML 9-7 1.回顾 9-7 2.析构方法 9-7 3.static关键字(静态变量) 9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9 5.继承与实现比较 final const 9-9 6.面向对象编程综合练习 10-10 1 课程回顾 10-10 2 正则表达式 10-10 3 正则表达式 子表达式 引用 反向捕获 10-10 4 正则表达式 元字符 语法 10-10 5 元字符 实例应用 10-10 6 供求信息网讲解1 10-10 7 供求信息网讲解2 10-11 1 供求信息网3 10-11 2 供求信息网4 10-11 3 供求信息网5 10-11 4 供求信息网6 10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统讲解1 10-16 3 投票系统讲解2 10-16 4 投票系统讲解3 10-16 5 投票系统讲解4 10-18 1 模板技术讲解 10-18 2 smarty常用功能 10-18 3 smarty常用功能 10-18 4 smarty功能讲解 10-18 5 smarty流程控制 10-18 6 10-18 7 smarty include使用 10-19 1 smarty实例 注册 10-19 2 smarty实例 注册2 10-19 3 smarty实例 注册3 10-19 4 smarty 字符串 自定义插件 缓存 10-19 5 smarty 字符串 自定义插件 缓存 10-19 6 smarty实例应?? 10-19 7 smarty实例应用2 10-19 8 smarty实例应用3 10-20 1 smarty应用 更换网站皮肤 10-20 2 smarty应用 更换网站皮肤2 10-20 3 smarty应用 更换网站皮肤3 10-20 4 smarty应用 更换网站皮肤4 10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金市场报价 10-23 1 简易在线聊天室1 10-23 2 简易在线聊天室2 10-23 3 简易在线聊天室3 10-23 4 简易在线聊天室4 10-23 5 简易在线聊天室5 10-23 6 简易在线聊天室6 10-25 1 jquery框架 jquery对象与dom对象区别及混合使用 10-25 2 jquery id选择器 层次选择器 10-25 3 jquery过滤选择器及练习题讲解 10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程回顾 10-27 2 jquery的dom操作 内部插入 外部插入 10-27 3 jquery节点操作 10-27 4 练习题讲解 10-27 5 jquery属性操作 获取子元素和兄弟元素的方法 10-27 6 练习题讲解 10-27 7 jquery和ajax整合使用的方法 10-29 1 svn安装及常用操作 10-29 2 svn常用操作 实例讲解1 10-29 3 svn常用操作 实例讲解2 10-29 4 svn常用操作 实例讲解3 10-29 5 svn常用操作 实例讲解4 10-30 1 linux简介 10-30 2 虚拟机安装 linux安装 10-30 3 常用命令 远程控制软件使用 10-30 4 vi编辑器使用 linux目录讲解 10-4 1 课程回顾 10-4 2 js面向对象多态 10-4 3 js内部对象和系统函数 10-4 5 js内部类 string array 10-4 6 js对象数组 常用系统函数 10-4 7 js事件 事件驱动机制 10-4 8 10-5 1 课程回顾 10-5 2 js dom编程 10-5 3 dom编程实例 乌龟抓鸡 10-5 4 dom编程实例 乌龟抓鸡2 10-5 5 dom层次关系 dom对象 10-5 6 dom实例讲解 小人行走 10-7 1 课程回顾 10-7 2 dom对象详解 10-7 3 dom对象详解2 10-7 4 document对象 10-7 5 乌龟抓鸡游戏加强版 10-7 6 常用dom对象node节点属性讲解 10-7 7 坦克大战初步讲解 10-8 1 课程回顾 乌龟抓鸡游戏bug修复 10-8 2 style对象 10-8 3 style对象实例讲解 10-8 4 form forms对象 img对象 link对象 table对象 10-8 5 table实例讲解 10-8 6 正则表达式 11-1 1 常用命令讲解 用户管理 运行级别 11-1 2 常用开发命令讲解2 11-1 3 常用开发命令讲解3 11-1 4 文件所在组 所有组 其它组讲解 11-2 lamp安装(php和apache的整合)2011-11-2-3 11-2 lamp安装之-mysql的安装和配置(2011-11-2-2) 11-2 rpm命令+samba安装(2011-11-2-5) 11-2 在linux下安装phpmyadmin软(2011-11-2-4) 11-5-1(上次课回顾) 11-5-2(页面静态化介绍) 11-5-3新闻管理系统(页面真静态) 11-5-4(真静态) 11-5-5(伪静态) 11-6 1(memcache原理介绍) 11-6 2-1(memcache的telnet操作,安装和基本使用) 11-6 2-2(memcach3的php的操作) 11-6 4(mysql数据库优化1) 11-6 5(mysql数据库优化 11-6 6(mysql数据库优化 11-8 商务网站项目1_1 11-8 商务网站项目1_2 11-8 商务网站项目1_3 11-9 商务网站项目2_1 11-9 商务网站项目2_2 11-9 商务网站项目2_3 11-9 商务网站项目2_4-单例模式 11-9 商务网站项目2_5 11-10 商务网站项目3_1 11-10 商务网站项目3_2 11-10 商务网站项目3_3 11-12 商务网站项目4_1 11-12 商务网站项目4_2 11-12 商务网站项目4_3-订单提交 11-13 商务网站项目4_4(没声音) 11-13 商务网站项目4_5 11-13 商务网站项目4_6 11-15 商务网站项目5_ec二次开发 11-17 yii_store项目1 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-20-yii框架_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-22 yii_store项目 11-22 yii_store项目 11-23 yii_store项目 11-23 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-25 yii_store项目
史上最全韩顺平毕业班视频------这里只有9月份,8,10,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3.符号实体 url说明 超链接 发送电邮 8-11 4.图像 表格 实际应用-菜谱 课堂练习-课程表 8-11 5.无序列表 有序列表 框架 8-12 1.浮动窗口 表单及表单控件① 8-12 2.表单及表单控件② 8-12 3.多媒体页面 标签汇总① 地图映射1 8-12 4.多媒体页面 标签汇总① 地图映射2 8-12 5.多媒体页面 标签汇总① 地图映射3 8-12 6.多标签汇总② 线包字效果 测试题 8-13 1.div+css开山篇 8-13 2.初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 2.div+css作业评讲② 8-15 3.div+css作业评讲③ 8-15 4.浮动 8-15 5.网站推荐 定位 8-15 6.仿sohu首页面布局 可爱屋首页面 8-16 1.动态网页技术介绍 php基本介绍 8-16 2.php快速入门 bs和cs介绍 8-16 3.web服务器介绍 apache服务器安装 8-16 4.apache服务器使用及配置① 启动和停止 端口配置 8-16 5.apache服务器使用及配置② apache目录结构 8-16 6.apache服务器使用及配置③ apache虚拟目录 8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的搭建和使用② 自定义安装 8-17 5.php开发环境的搭建和使用③ 安装并配置discuz论坛 8-19 1.解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② 比较运算符 逻辑运算符 8-20 1.三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-22 1.break语句 continue语句 常量 8-22 2.函数基本概念 函数快速入门 8-22 3.函数使用函数调用初步理解 8-22 4.函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用细节① 8-23 6.数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组作业评讲③ 8-24 7.类与对象的基本概念 8-26 1.成员属性 如何创建对象 8-26 2.对象在内存中存在形式 函数传递对象方式 8-26 3.函数传递基本数据类型和数组方式 成员方法① 8-26 4.成员方法② 8-26 5.作业评讲 8-27 mysql1 8-27 mysql2 8-28 1.mysql 8-28 2.mysql 8-28 3.mysql 8-28 4.mysql 8-28 5.mysql 8-28 6.mysql 8-30 1.mysql 8-30 2.mysql 8-30 3.mysql 8-30 4.mysql 8-30 5.mysql 8-31 1 8-31 2.外键、索引 8-31 3.事务处理 8-31 4 8-31 5 8-31 6 9-10 1.回顾 9-10 2.错误和异常处理介绍 处理错误方式①-die 9-10 3.处理错误方式②-错误处理器 错误级别 处理错误方式③-错误触发器 9-10 4.php错误日志 9-10 5.php异常处理 9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http响应详解(文件下载) 9-13 4.http协议深度剖析⑤-http响应详解(作业评讲) 9-13 5.php数据库编程①-使用mysql扩展库 9-13 6.php数据库编程②-使用mysql扩展库 9-13 7.php数据库编程③-使用mysql扩展库 9-14 1.回顾 9-14 2.php数据库编程④-使用mysql扩展库(在线词典案例) 9-14 3.php数据库编程⑤-使用mysql扩展库(在线词典案例) 9-14 4.php数据库编程⑥-使用mysqli扩展库 9-14 5.php数据库编程⑦-使用mysqli扩展库 9-14 6.php数据库编程⑧-使用mysqli扩展库(布置练习) 9-14 7.php数据库编程⑨-使用mysqli扩展库增强(批量执行sql和事务控制) 9-17 1.回顾 9-17 2.php数据库编程(10)-使用mysqli扩展库增强(预处理技术) 9-17 3.php数据库编程(11)-使用mysqli扩展库增强(预处理技术) 9-17 4.预定义超全局数组①-原理分析 $_GET 9-17 5.预定义超全局数组②-$_POST $_REQUEST 9-17 6.预定义超全局数组③-$_SERVER $_ENV $GLOBALS 9-17 7.zend studio使用 项目开发五个阶段 雇员管理系统① 9-19 1.回顾 9-19 2.雇员管理系统②-model1模式简单登录 9-19 3.雇员管理系统③-model1模式数据库登录 9-19 4.雇员管理系统④-model1模式雇员分页 9-19 5.雇员管理系统⑤-分层模式管理员登录 9-20 1.回顾 9-20 2.雇员管理系统⑥-分层模式雇员分页 9-20 3.雇员管理系统⑦-分层模式整体翻页 9-20 4.雇员管理系统⑧-分层模式通用分页模块 9-20 5.雇员管理系统⑨-mvc模式介绍 9-21 1.回顾 9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-雇员管理系统使用cookie技术 1.显示上传登录时间2.保留登录id 9-23 1回顾 9-23 2.session①-session原理介绍 保存session 9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session⑤-session配置 session的gc机制 自定义session处理器 9-24 0.回顾 9-24 1.回顾2 9-24 2.php文件编程①-文件操作原理 如何获取文件信息 如何读文件 9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的输出 9-27 3 循环控制 js的调试方法 9-27 4 函的数定义分类及使用 9-27 5 函数的调用 递归及深入使用 9-27 6 一维?榧笆樵谀诖嬷械拇嬖谛问? 9-27 7 常用数组的属性及使用方法 9-28 1课程回顾 9-28 2 二维数组的定义使用 数组排序 9-28 3 顺序查找 二分查找 9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 引用实体 参数实体 ide开发xml 9-5 5.php xml编程⑤-复杂的dtd综合练习 9-5 6.php xml编程⑥-dom基本概念 phpdom编程(1) 9-6 1.回顾 9-6 2.php xml编程⑦-phpdom编程(2) 9-6 3.php xml编程⑧-phpdom编程(3) 综合练习-基于xml的在线词典 9-6 4.php xml编程⑨-综合练习-基于xml的在线词典 phpdom使用xpath 9-6 5.php xml编程(10)-SimpleXML 9-7 1.回顾 9-7 2.析构方法 9-7 3.static关键字(静态变量) 9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9 5.继承与实现比较 final const 9-9 6.面向对象编程综合练习 10-10 1 课程回顾 10-10 2 正则表达式 10-10 3 正则表达式 子表达式 引用 反向捕获 10-10 4 正则表达式 元字符 语法 10-10 5 元字符 实例应用 10-10 6 供求信息网讲解1 10-10 7 供求信息网讲解2 10-11 1 供求信息网3 10-11 2 供求信息网4 10-11 3 供求信息网5 10-11 4 供求信息网6 10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统讲解1 10-16 3 投票系统讲解2 10-16 4 投票系统讲解3 10-16 5 投票系统讲解4 10-18 1 模板技术讲解 10-18 2 smarty常用功能 10-18 3 smarty常用功能 10-18 4 smarty功能讲解 10-18 5 smarty流程控制 10-18 6 10-18 7 smarty include使用 10-19 1 smarty实例 注册 10-19 2 smarty实例 注册2 10-19 3 smarty实例 注册3 10-19 4 smarty 字符串 自定义插件 缓存 10-19 5 smarty 字符串 自定义插件 缓存 10-19 6 smarty实例应?? 10-19 7 smarty实例应用2 10-19 8 smarty实例应用3 10-20 1 smarty应用 更换网站皮肤 10-20 2 smarty应用 更换网站皮肤2 10-20 3 smarty应用 更换网站皮肤3 10-20 4 smarty应用 更换网站皮肤4 10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金市场报价 10-23 1 简易在线聊天室1 10-23 2 简易在线聊天室2 10-23 3 简易在线聊天室3 10-23 4 简易在线聊天室4 10-23 5 简易在线聊天室5 10-23 6 简易在线聊天室6 10-25 1 jquery框架 jquery对象与dom对象区别及混合使用 10-25 2 jquery id选择器 层次选择器 10-25 3 jquery过滤选择器及练习题讲解 10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程回顾 10-27 2 jquery的dom操作 内部插入 外部插入 10-27 3 jquery节点操作 10-27 4 练习题讲解 10-27 5 jquery属性操作 获取子元素和兄弟元素的方法 10-27 6 练习题讲解 10-27 7 jquery和ajax整合使用的方法 10-29 1 svn安装及常用操作 10-29 2 svn常用操作 实例讲解1 10-29 3 svn常用操作 实例讲解2 10-29 4 svn常用操作 实例讲解3 10-29 5 svn常用操作 实例讲解4 10-30 1 linux简介 10-30 2 虚拟机安装 linux安装 10-30 3 常用命令 远程控制软件使用 10-30 4 vi编辑器使用 linux目录讲解 10-4 1 课程回顾 10-4 2 js面向对象多态 10-4 3 js内部对象和系统函数 10-4 5 js内部类 string array 10-4 6 js对象数组 常用系统函数 10-4 7 js事件 事件驱动机制 10-4 8 10-5 1 课程回顾 10-5 2 js dom编程 10-5 3 dom编程实例 乌龟抓鸡 10-5 4 dom编程实例 乌龟抓鸡2 10-5 5 dom层次关系 dom对象 10-5 6 dom实例讲解 小人行走 10-7 1 课程回顾 10-7 2 dom对象详解 10-7 3 dom对象详解2 10-7 4 document对象 10-7 5 乌龟抓鸡游戏加强版 10-7 6 常用dom对象node节点属性讲解 10-7 7 坦克大战初步讲解 10-8 1 课程回顾 乌龟抓鸡游戏bug修复 10-8 2 style对象 10-8 3 style对象实例讲解 10-8 4 form forms对象 img对象 link对象 table对象 10-8 5 table实例讲解 10-8 6 正则表达式 11-1 1 常用命令讲解 用户管理 运行级别 11-1 2 常用开发命令讲解2 11-1 3 常用开发命令讲解3 11-1 4 文件所在组 所有组 其它组讲解 11-2 lamp安装(php和apache的整合)2011-11-2-3 11-2 lamp安装之-mysql的安装和配置(2011-11-2-2) 11-2 rpm命令+samba安装(2011-11-2-5) 11-2 在linux下安装phpmyadmin软(2011-11-2-4) 11-5-1(上次课回顾) 11-5-2(页面静态化介绍) 11-5-3新闻管理系统(页面真静态) 11-5-4(真静态) 11-5-5(伪静态) 11-6 1(memcache原理介绍) 11-6 2-1(memcache的telnet操作,安装和基本使用) 11-6 2-2(memcach3的php的操作) 11-6 4(mysql数据库优化1) 11-6 5(mysql数据库优化 11-6 6(mysql数据库优化 11-8 商务网站项目1_1 11-8 商务网站项目1_2 11-8 商务网站项目1_3 11-9 商务网站项目2_1 11-9 商务网站项目2_2 11-9 商务网站项目2_3 11-9 商务网站项目2_4-单例模式 11-9 商务网站项目2_5 11-10 商务网站项目3_1 11-10 商务网站项目3_2 11-10 商务网站项目3_3 11-12 商务网站项目4_1 11-12 商务网站项目4_2 11-12 商务网站项目4_3-订单提交 11-13 商务网站项目4_4(没声音) 11-13 商务网站项目4_5 11-13 商务网站项目4_6 11-15 商务网站项目5_ec二次开发 11-17 yii_store项目1 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-20-yii框架_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-22 yii_store项目 11-22 yii_store项目 11-23 yii_store项目 11-23 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-25 yii_store项目
非常实用 持之以恒才是王道! 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3.符号实体 url说明 超链接 发送电邮 8-11 4.图像 表格 实际应用-菜谱 课堂练习-课程表 8-11 5.无序列表 有序列表 框架 8-12 1.浮动窗口 表单及表单控件① 8-12 2.表单及表单控件② 8-12 3.多媒体页面 标签汇总① 地图映射1 8-12 4.多媒体页面 标签汇总① 地图映射2 8-12 5.多媒体页面 标签汇总① 地图映射3 8-12 6.多标签汇总② 线包字效果 测试题 8-13 1.div+css开山篇 8-13 2.初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 2.div+css作业评讲② 8-15 3.div+css作业评讲③ 8-15 4.浮动 8-15 5.网站推荐 定位 8-15 6.仿sohu首页面布局 可爱屋首页面 8-16 1.动态网页技术介绍 php基本介绍 8-16 2.php快速入门 bs和cs介绍 8-16 3.web服务器介绍 apache服务器安装 8-16 4.apache服务器使用及配置① 启动和停止 端口配置 8-16 5.apache服务器使用及配置② apache目录结构 8-16 6.apache服务器使用及配置③ apache虚拟目录 8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的搭建和使用② 自定义安装 8-17 5.php开发环境的搭建和使用③ 安装并配置discuz论坛 8-19 1.解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② 比较运算符 逻辑运算符 8-20 1.三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-22 1.break语句 continue语句 常量 8-22 2.函数基本概念 函数快速入门 8-22 3.函数使用函数调用初步理解 8-22 4.函数调用深入理解 函数使用注意事项① 8-22 5.函数使用注意事项② 函数作业布 8-23 1.函数再回顾 自定义函数 8-23 2.位运算① 8-23 3.位运算② 8-23 4.数组介绍 数组的创建 ?榈谋槔? 8-23 5.数组的引用 数组使用细节① 8-23 6.数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组作业评讲③ 8-24 7.类与对象的基本概念 8-26 1.成员属性 如何创建对象 8-26 2.对象在内存中存在形式 函数传递对象方式 8-26 3.函数传递基本数据类型和数组方式 成员方法① 8-26 4.成员方法② 8-26 5.作业评讲 8-27 mysql1 8-27 mysql2 8-28 1.mysql 8-28 2.mysql 8-28 3.mysql 8-28 4.mysql 8-28 5.mysql 8-28 6.mysql 8-30 1.mysql 8-30 2.mysql 8-30 3.mysql 8-30 4.mysql 8-30 5.mysql 8-31 1 8-31 2.外键、索引 8-31 3.事务处理 8-31 4 8-31 5 8-31 6 9-10 1.回顾 9-10 2.错误和异常处理介绍 处理错误方式①-die 9-10 3.处理错误方式②-错误处理器 错误级别 处理错误方式③-错误触发器 9-10 4.php错误日志 9-10 5.php异常处理 9-10 6.php进阶预热篇-php执行流程时序图 9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http响应详解(文件下载) 9-13 4.http协议深度剖析⑤-http响应详解(作业评讲) 9-13 5.php数据库编程①-使用mysql扩展库 9-13 6.php数据库编程②-使用mysql扩展库 9-13 7.php数据库编程③-使用mysql扩展库 9-14 1.回顾 9-14 2.php数据库编程④-使用mysql扩展库(在线词典案例) 9-14 3.php数据库编程⑤-使用mysql扩展库(在线词典案例) 9-14 4.php数据库编程⑥-使用mysqli扩展库 9-14 5.php数据库编程⑦-使用mysqli扩展库 9-14 6.php数据库编程⑧-使用mysqli扩展库(布置练习) 9-14 7.php数据库编程⑨-使用mysqli扩展库增强(批量执行sql和事务控制) 9-17 1.回顾 9-17 2.php数据库编程(10)-使用mysqli扩展库增强(预处理技术) 9-17 3.php数据库编程(11)-使用mysqli扩展库增强(预处理技术) 9-17 4.预定义超全局数组①-原理分析 $_GET 9-17 5.预定义超全局数组②-$_POST $_REQUEST 9-17 6.预定义超全局数组③-$_SERVER $_ENV $GLOBALS 9-17 7.zend studio使用 项目开发五个阶段 雇员管理系统① 9-19 1.回顾 9-19 2.雇员管理系统②-model1模式简单登录 9-19 3.雇员管理系统③-model1模式数据库登录 9-19 4.雇员管理系统④-model1模式雇员分页 9-19 5.雇员管理系统⑤-分层模式管理员登录 9-20 1.回顾 9-20 2.雇员管理系统⑥-分层模式雇员分页 9-20 3.雇员管理系统⑦-分层模式整体翻页 9-20 4.雇员管理系统⑧-分层模式通用分页模块 9-20 5.雇员管理系统⑨-mvc模式介绍 9-21 1.回顾 9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-雇员管理系统使用cookie技术 1.显示上传登录时间2.保留登录id 9-23 1回顾 9-23 2.session①-session原理介绍 保存session 9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session⑤-session配置 session的gc机制 自定义session处理器 9-24 0.回顾 9-24 1.回顾2 9-24 2.php文件编程①-文件操作原理 如何获取文件信息 如何读文件 9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的输出 9-27 3 循环控制 js的调试方法 9-27 4 函的数定义分类及使用 9-27 5 函数的调用 递归及深入使用 9-27 6 一维?榧笆樵谀诖嬷械拇嬖谛问? 9-27 7 常用数组的属性及使用方法 9-28 1课程回顾 9-28 2 二维数组的定义使用 数组排序 9-28 3 顺序查找 二分查找 9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata 实体字符 处理指令 dtd快速入门 编?绦Q閤ml 9-5 3.php xml编程③-内部dtd 外边dtd dtd元素 dtd修饰符 9-5 4.php xml编程④-dtd属性 引用实体 参数实体 ide开发xml 9-5 5.php xml编程⑤-复杂的dtd综合练习 9-5 6.php xml编程⑥-dom基本概念 phpdom编程(1) 9-6 1.回顾 9-6 2.php xml编程⑦-phpdom编程(2) 9-6 3.php xml编程⑧-phpdom编程(3) 综合练习-基于xml的在线词典 9-6 4.php xml编程⑨-综合练习-基于xml的在线词典 phpdom使用xpath 9-6 5.php xml编程(10)-SimpleXML 9-7 1.回顾 9-7 2.析构方法 9-7 3.static关键字(静态变量) 9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9 5.继承与实现比较 final const 9-9 6.面向对象编程综合练习 10-10 1 课程回顾 10-10 2 正则表达式 10-10 3 正则表达式 子表达式 引用 反向捕获 10-10 4 正则表达式 元字符 语法 10-10 5 元字符 实例应用 10-10 6 供求信息网讲解1 10-10 7 供求信息网讲解2 10-11 1 供求信息网3 10-11 2 供求信息网4 10-11 3 供求信息网5 10-11 4 供求信息网6 10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 controller view调用 10-16 2 投票系统讲解1 10-16 3 投票系统讲解2 10-16 4 投票系统讲解3 10-16 5 投票系统讲解4 10-18 1 模板技术讲解 10-18 2 smarty常用功能 10-18 3 smarty常用功能 10-18 4 smarty功能讲解 10-18 5 smarty流程控制 10-18 6 10-18 7 smarty include使用 10-19 1 smarty实例 注册 10-19 2 smarty实例 注册2 10-19 3 smarty实例 注册3 10-19 4 smarty 字符串 自定义插件 缓存 10-19 5 smarty 字符串 自定义插件 缓存 10-19 6 smarty实例应?? 10-19 7 smarty实例应用2 10-19 8 smarty实例应用3 10-20 1 smarty应用 更换网站皮肤 10-20 2 smarty应用 更换网站皮肤2 10-20 3 smarty应用 更换网站皮肤3 10-20 4 smarty应用 更换网站皮肤4 10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金市场报价 10-23 1 简易在线聊天室1 10-23 2 简易在线聊天室2 10-23 3 简易在线聊天室3 10-23 4 简易在线聊天室4 10-23 5 简易在线聊天室5 10-23 6 简易在线聊天室6 10-25 1 jquery框架 jquery对象与dom对象区别及混合使用 10-25 2 jquery id选择器 层次选择器 10-25 3 jquery过滤选择器及练习题讲解 10-25 4 内容过滤器 可见度过滤器及练习讲解 10-26 1 课程回顾 10-26 2 属性过滤选择器 10-26 3 子元素选择器 表单对象属性选择器 10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程回顾 10-27 2 jquery的dom操作 内部插入 外部插入 10-27 3 jquery节点操作 10-27 4 练习题讲解 10-27 5 jquery属性操作 获取子元素和兄弟元素的方法 10-27 6 练习题讲解 10-27 7 jquery和ajax整合使用的方法 10-29 1 svn安装及常用操作 10-29 2 svn常用操作 实例讲解1 10-29 3 svn常用操作 实例讲解2 10-29 4 svn常用操作 实例讲解3 10-29 5 svn常用操作 实例讲解4 10-30 1 linux简介 10-30 2 虚拟机安装 linux安装 10-30 3 常用命令 远程控制软件使用 10-30 4 vi编辑器使用 linux目录讲解 10-4 1 课程回顾 10-4 2 js面向对象多态 10-4 3 js内部对象和系统函数 10-4 5 js内部类 string array 10-4 6 js对象数组 常用系统函数 10-4 7 js事件 事件驱动机制 10-4 8 10-5 1 课程回顾 10-5 2 js dom编程 10-5 3 dom编程实例 乌龟抓鸡 10-5 4 dom编程实例 乌龟抓鸡2 10-5 5 dom层次关系 dom对象 10-5 6 dom实例讲解 小人行走 10-7 1 课程回顾 10-7 2 dom对象详解 10-7 3 dom对象详解2 10-7 4 document对象 10-7 5 乌龟抓鸡游戏加强版 10-7 6 常用dom对象node节点属性讲解 10-7 7 坦克大战初步讲解 10-8 1 课程回顾 乌龟抓鸡游戏bug修复 10-8 2 style对象 10-8 3 style对象实例讲解 10-8 4 form forms对象 img对象 link对象 table对象 10-8 5 table实例讲解 10-8 6 正则表达式 11-1 1 常用命令讲解 用户管理 运行级别 11-1 2 常用开发命令讲解2 11-1 3 常用开发命令讲解3 11-1 4 文件所在组 所有组 其它组讲解 11-2 lamp安装(php和apache的整合)2011-11-2-3 11-2 lamp安装之-mysql的安装和配置(2011-11-2-2) 11-2 rpm命令+samba安装(2011-11-2-5) 11-2 在linux下安装phpmyadmin软(2011-11-2-4) 11-5-1(上次课回顾) 11-5-2(页面静态化介绍) 11-5-3新闻管理系统(页面真静态) 11-5-4(真静态) 11-5-5(伪静态) 11-6 1(memcache原理介绍) 11-6 2-1(memcache的telnet操作,安装和基本使用) 11-6 2-2(memcach3的php的操作) 11-6 4(mysql数据库优化1) 11-6 5(mysql数据库优化 11-6 6(mysql数据库优化 11-8 商务网站项目1_1 11-8 商务网站项目1_2 11-8 商务网站项目1_3 11-9 商务网站项目2_1 11-9 商务网站项目2_2 11-9 商务网站项目2_3 11-9 商务网站项目2_4-单例模式 11-9 商务网站项目2_5 11-10 商务网站项目3_1 11-10 商务网站项目3_2 11-10 商务网站项目3_3 11-12 商务网站项目4_1 11-12 商务网站项目4_2 11-12 商务网站项目4_3-订单提交 11-13 商务网站项目4_4(没声音) 11-13 商务网站项目4_5 11-13 商务网站项目4_6 11-15 商务网站项目5_ec二次开发 11-17 yii_store项目1 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-19 yii框架_store项目 11-20-yii框架_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-20-yii_store项目 11-22 yii_store项目 11-22 yii_store项目 11-23 yii_store项目 11-23 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-24 yii_store项目 11-25 yii_store项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值