PHP 超文本预处理器(动态网站的脚本语言)

PHP 超文本预处理器(动态网站的脚本语言)

PHP是什么

  PHP: 超文本预处理器一句话: 一种用来开发动态网站的服务器脚本语言
​
1. PHP 定界符
   所有PHP代码必须放在定界符里才能起作用
   定界符1: 
   <?php  php代码  ?>     长风格定界符
   定界符2:
   <?     php代码  ?>     短风格定界符
   PS: 
   短风格定界符, 服务器默认不开启
   如需开启, 需要修改配置文件
   配置文件地址:  wamp\bin\apache\apache2.4.18\bin\php.ini
   配置代码: short_open_tag = On | Off
   修改任意配置, 必须重启服务器才能起作用.
​
2. PHP 向浏览器输出一句话
   echo '内容';
   PS: 内容可以识别 html标签
​
3. 如果输出内容乱码, 则先声明编码方式
   header('content-type: text/html; charset=utf-8');   utf-8编码
​
4. 注释
   单行: //
​
   ```
    单行: #
    多行: /*  * /
   ```
​
5. 基本语法
   每条PHP命令 均以 分号 结尾;
   其中, 最后一条PHP命令, 可以省略分号.  (不推荐)

变量

 变量  variable       未知数   值不固定
​
1. 格式
   $变量名 = 值
   PS: 如果变量 没有赋值, 则被称之为 未定义的变量
   echo @$y;  // Undefined : 未定义
   如果不想看见错误, 在变量前面加@
​
2. 命名
   2.1 规范: 由数字, 字母和 下划线组成, 不能以数字开头          支持中文, 最好不要用中文.
   2.2 区分大小写
​
3. 可变变量: 将一个变量的值 作为另一个变量的名 去使用
   普通赋值
​
   •    $a = 100;
​
   引用变量: 将一个变量的内存地址 给了 另一个变量
​
   •    $a = 100;
   •    $b = &$a;   // $b = $a的内存地址,  两个变量共用同一个内存

数据类型

 

数据类型
•       标量
•           整型  int
•           浮点型  float
•           布尔型  bool
•           字符串  string
•       复合
•           数组    array
•           对象    object
•       特殊
•           资源    resource
•           空   null

 

整型 int

 

**最大整型**
•   var_dump( PHP_INT_MAX );
•   echo '<br>  ';
•   $a = PHP_INT_MAX;
•   $a = $  a + 1;
•   var_dump( $a );
•   PS : **超过最大整型, 则自动转换为 浮点型**
​
•   进制数   => 十进制
•   二进制: 0-1        **以0b开头**
•   八进制:     0-7    **以0开头**
•   十进制:
•   十六进制:   0-9 a-f     **以0x开头**

 

浮点型 float 小数

 

var_dump( 1.5 );
•   var_dump( 15 );
​
    精度   14位   四舍五入
•   科学计数法
​
•   $a = 2e3; // 2 * 10^3
•   echo $a;
•   var_dump($a);
​
•   奇葩现象  **浮点型不适合二进制**

 

布尔型 bool 状态

 

值: true | false
•   场景: 用于 判断
​
•   var_dump( 1 > 2 );
​
•   **有7种情况与false 等价, 其余都是true**
​
1. false
2. 0
3. 0.0
4. ''  或  '0'
5. null
6. 空数组 array()  或 []
7. 未定义变量

字符串 string

  • **单引号       推荐**
    ​
    - **双引号**
      - **自定义定界符   <<<定界符    定界符;** 
    ​
    单双引号的区别
    ​
    **单: 不解析变量, 不解析转义字符, 但解析转义转义字符**
    **双: 解析变量, 解析转义字符**
    **共: 不能自插, 可以互插**

    数组

     

    **组成: 下标 和 值**
    ​
    •   格式: 
    •       $数组名[] = 值
    •       $数组名 = [值1, 值2, ...]
    •       $数组名 = array(值1, 值2, ...)
    ​
    •       增删改查, 通过 下标 来实现

    对象

     

    *类和对象*
    ​
            **类 就是对象的抽象画**
    ​
            **对象 就是类的实例化**
    ​
        *类*
    ​
            class 类名
    ​
            {
    ​
                属性
    ​
                    格式:
    ​
                        修饰符 属性名
    ​
                        修饰符 属性名 = 属性值
    ​
                方法
    ​
                    格式:
    ​
                        修饰符 function 方法名 (参数)
    ​
                        {
    ​
                            方法体
    ​
                        }                   
            }
    ​
    对象
    ​
        实例化格式:
    ​
        对象 = **new 类名**
    ​
    通过对象使用属性
    ​
        **对象->属性名**
    ​
    通过对象使用方法
    ​
        **对象->方法名()**
    ​
    伪对象
    ​
        在类内,通过 **$this** 来访问属性/方法
    ​
    连贯操作
    ​
        **$对象名->方法名( )->方法名( )..........**
    ​
        PS: 每个方法需要返回对象(**return对象名**)

    资源

     

    资源数据类型是PHP4引进的。资源是一种特殊的变量类型,保存了 到外部资源的一个引用:如打开文件、数据库连接、图形画布区域等。
    ​
        资源是通过专门的函数来建立和使用的
    ​
        资源在PHP变量中使用
    ​
        例: $资源 = fopen('文件地址', '模式')

     

    定义: 没有内存地址
    ​
        3种情况直接为null
    ​
        直接赋值
    ​
        未定义变量
    ​
        被删除的变量

    常见函数

     

    unset()   删除变量
    ​
        empty()     判断一个变量是否为假 假 返回true,  真 返回false
        isset()     判断一个变量是否有内存地址   有 返回true,  没有 返回false
                只有null 和 未定义变量 返回false 
    ​
        **常量**
    ​
        格式: const 常量名 = 常量值
    ​
        格式: define(常量名, 常量值 [,true/false])
                                    true: 不区分大小写
                                    false: 区分大小写  默认
    ​
    - 常量名不需要$符
    ​
      - 常量区分大小写
      - 常量不能重新赋值
      - 常量不能重新定义
    ​
      魔术常量
        __FILE__        盘符路径
        __LINE__        行号
    ​
      预定义常量
        PHP_INT_MAX     最大整数
        PHP_OS          操作系统
        PHP_VERSION     版本
        M_PI            圆周率

    PHP输出方式

     

    **echo** 
    ​
            支持int, float, string, resource
    ​
            语法结构
    ​
            没有返回值
    ​
        **print | print()**
    ​
            支持int, float, string, resource
    ​
            语法结构 | 函数
    ​
            返回值: int
    ​
        **print_r**
    ​
            除了bool和null, 其余的都能输出
    ​
            函数
    ​
            返回值: bool
    ​
            var_dump
    ​
        **任意类型**
    ​
            函数
    ​
            没有返回值
    ​
            var_dump: 128个 more elements ... 
            print_r:  无上限

    PHP类型转换

     

    **自动类型**
    ​
            bool -> int         true : 1  |  false :0
                 -> float
            
            int -> float 
    ​
            string -> int
                   -> float 
    ​
            从前向后数, 当碰到第一个不是数字时(. 和 e), 截断(后面不要了)
            '123abc' + 100          123 + 100
            'abc123' + 100          0 + 100
            'a1b2'   + 100          0 + 100
            '1b2a'   + 100          1 + 100
    ​
            '1.2e3'  + 100          1.2*10^3 + 100
            '1.2.3e4' + 100             1.2 + 100
            '1eee3'   + 100             1 + 100
    ​
        **强制类型**
    ​
            **临时**
    ​
                通过运算符 来转换     (类型)变量      PS: 类型不支持特殊类型
    ​
                通过函数 来转换
                intval()
                floatval()
                boolval()
                strval()
            **永久**
    ​
                通过函数 来转换
                settype(变量, 类型)

    运算符

     

     

    **算术运算符**
    ​
            + - * /         加减乘除
            %           取模
    ​
            ++ a++  ++a 自增自减
    ​
            .           拼接
    ​
        **. 赋值运算符**
    ​
            = 
            += 
            -= 
            *=      a *= b      =>  a = a * b
            /=
            %=
            .=
    ​
        
    ​
        **比较运算符**
    ​
            =
    ​
            < = >=
    ​
            === 
            !=   <>
            !==

    逻辑运算符

     

    逻辑与 && and  两边为真即为真, 一边为假即为假
    •       逻辑或  ||  or         两边为假即为假, 一边为真即为真
    •       逻辑非  !          真即是假, 假即是真
    •   
    •       PS: 如果前面的运算已经确定最终结果, 那么后面的代码不再执行
    •       PS: 与和或同时发生时, 从左往右运算
    ​
    •   一元运算符   ++ -- !  (类型)
    •    二元运算符   + - * / ....
    •   三元运算符   ?:
        完整格式
                条件表达式 ? 成立 : 不成立 
    •   $a = 2;
    •   $a = 3;
    •   echo $a == 2?  '是2啊' :  '不2啊';
    •   echo '<hr>';
        条件 ? ( ?: ) : ( ?: )
    •   $lv = 9.2;
    •   echo $青铜lv < 6? '青铜' : ( $lv < 7 ?'白银': ($铂金lv < 8?'铂金': ($lv < 9?'钻石':'王者')) )  ;
    •   echo '<hr>';
    •   get         服务器以 $_GET 接收
    •   post    服务器以 $_POST 接收
    •   var_dump( $_GET );
    •   $xxx = $    _GET['ope'];
    •   echo $xxx;

    流程控制

     

    顺序结构: 代码从上往下依次执行
        分支结构: 通过if/switch进行 分支选择
        循环结构: 通过 while/ do_while/ for 循环
    ​
    ​
    ​
        **if 分支**
        3.1 if()        影响紧跟在if后面的一句话
        3.2 if(){}      影响在if后面的{}内的所有代码
        3.3 if(){ true环境 }else{ false环境 }
        3.4 if(){
        true环境
            }elseif(){
        二次true环境
            }else{
        二次false环境
        }   
        if用于定值, 用于范围判断
    ​
    ​
    ​
        **switch 定值分支**
        switch(标志){
        case '标志1':
        case '标志2':
        ...
        case '标志N':
        default: 以上标志都不存在时, 才会进入default
    ​
        }
    ​
        每个case, 默认从上往下依次执行, 
        如果只想执行某一个case, 在每个case的最后加 break;

    循环

        while 
    ​
            while( 条件表达式 ){
                循环体 
            }
    ​
    ​
    ​
        do_while
    ​
            do{
                循环体
            }while( 条件表达式 )
    ​
    ​
    ​
        for
    ​
            for( 1-初始值 ; 2-循环条件 ; 3-循环增量 ){
                4-循环体
            } 
    ​
            1 2 4 3 2 4 3 2 4 3.. 
              2 = false 时, 则跳出循环
    ​
        特殊流程控制符
    ​
        continue    直接进入下一轮
        break       结束当前的循环
        die | exit  结束程序

    PHP与HTML混合写法

     

    <?php for(): ?> 
    ​
            **html代码**  
    ​
        <?php endfor ?>
    ​
    ​
    ​
        <?php if(): ?>
            **html代码**
        <?php endif ?>
    ​
    ​
    ​
        <?php if(): ?>
            **true环境**下的html代码
        <?php else: ?>
            **false环境**下的html代码
        <?php endif ?>
    ​
        <?php if(): ?>
            **true环境**下的html代码
        <?php elseif: ?>
            **二次true环境**下的html代码
        <?php else: ?>
            **二次false环境**下的html代码
        <?php endif ?>

    PHP函数

     

    系统函数:   
    ​
        自定义函数: 根据用户的需求来设计函数
    ​
        格式: 
            function 函数名( [参数1, 参数2, ...] )
            {
                函数体
            }
    ​
        调用函数
    ​
        函数名()
        函数名( [参数, 参数, ...] )
    ​
        函数特性
    ​
        不调用不执行, 语法照常解析
    ​
        函数互不影响, 可以互相调用
    ​
        函数位置 和 调用函数位置 前后无所谓
    ​
        函数名
    ​
        规范: 由数字, 字母和下划线组成
    ​
        不能以数字开头
    ​
        不区分大小写
    ​
        不能重复
    ​
        形式: 
            驼峰命名法           myCodetext
            帕斯卡命名法      MyCodeText
            下划线命名法      my_code_text
    ​
        返回值 **return** 
    ​
        当函数执行到return时, 立马结束函数. 并返回到调用函数的地方
        自然结束: 没有return时, 默认有null
        通过return返回: 可以返回任意类型
    ​
        如何返回多个值, 通过数组返回 
    ​
    ​
    ​
        **参数**
    ​
        分类:
            实参: 调用函数时给的参数
            形参: 定义函数时给的参数
            
    ​
        实参个数 = 形参个数:  完美
        实参个数 > 形参个数:  多余的实参被抛弃
        实参个数 < 形参个数:  多余的形参, 要么当成未定义变量
                                          要么采用默认值
    ​
    ​
    ​
        **实参个数不确定时:**
            **func_get_args()**     以数组形式, 接收所有的实参
            **func_get_arg(n)**     获取实参列表中下标为n的值
            **func_num_args()**     获取实参的总个数
    ​
        
    ​
    ​
    ​
        **作用域**
    ​
        全局变量: 在函数外部定义的变量, 默认不能在局部环境中使用
        局部变量: 在函数内部定义的变量, 默认不能在全局环境中使用
        
        全局变量 在局部环境中使用, 通过$GLOBALS['全局变量名']使用
        局部变量 在全局环境中使用, 通过global声明局部变量
    ​
        静态变量: 在函数结束时, 不会消失,当再次调用此函数时, 会直接使用 上一次的静态值
    ​
    ​
    ​
        **变量技巧**
    ​
        可变函数: 将一个变量的值 作为函数名来使用
        引用函数: 形参接收实参的内存地址

    PHP数组

     

    分类:     
    ​
            索引数组: 下标为 int       
    ​
            关联数组: 下标为 string    
    ​
            格式1:        $数组名[ 下标 ] = 值      
    ​
            格式2:        $数组名 = [ 下标=>值, 下标=>值, ...];    
    ​
            格式3:        $数组名 = array( 下标=>值, 下标=>值, ... )
    ​
    ​
    ​
        数组下标
    ​
            下标 / 键 / 偏移量
    ​
            索引键:
                完全没有下标时, 默认从0开始,
                已经存在下标时, 默认从已有的最大下标+1
    ​
    ​
    ​
            关联键:
                **true** = 1 = 1.0 = '1'
                **fals**e = 0 = 0.0 = '0'
                **null** = '' = 未定义变量 
                **不能为 数组/对象/资源**
    ​
    ​
    ​
            **数组值**
    ​
                **值: 任意类型**
                **值 = 数组, 称之为: 多维数组**
    ​
    ​
    ​
             数组**遍历**
    ​
                索引遍历: 适合 有规律的数字下标
                指针遍历: 不需要初始值, 不需要增量
    ​
    ​
    ​
            **数组指针**
    ​
                current()   返回当前指针所在的值
                next()      下移一位
                prev()      上移一位        
                reset()     重置到第一位
                end()       重置到最后一位
                key()       返回当前指针所在的键
                each()      返回当前指针所指向的键和值
    ​
    ​
    ​
             **循环**
    ​
                **foreach( 数组名 as [ 键 => ] 值 ){**
                    循环体
                **}*
    ​
    ​
    ​
            **预定义数组**
    ​
                预定义数组
    ​
                $GLOBALS
                $_SERVER
                HTTP_HOST       主机名
                HTTP_REFERER    上一级来源地址
                HTTP_USER_AGENT 浏览器版本
                SERVER_NAME     服务器名
                SERVER_ADDR     服务器IP地址
                SERVER_SOFTWARE 服务器环境
                REMOTE_ADDR     客户端IP地址
    ​
                SCRIPT_FILENAME 脚本地址(盘符)
                SCRIPT_NAME     脚本地址(网址)
                REQUEST_URI     传输地址(带参数)
                REQUEST_METHOD  传输方式
                QUERY_STRING    传输参数
                $_GET
                $_POST
                    当action属性带参数, 
                    method = post,  $接收参数_GET 接收参数, $_POST接收表单值
                    method = get,   $_GET 接收表单, 而参数丢失
                                解决方案: 将参数通过隐藏域传输
                $_COOKIE
                $_SESSION
                $_FILES
    ​
                file表单name名
    ​
                form表单enctype = multipart/form-data
    ​
                form表单method = post
                $_REQUEST : 接收 get, post, cookie的值
    ​
    ​
    ​
             **字符串 -> 数组**
    ​
                字符串当成 索引数组, 
                 第一个字符的下标为 0, 依次类推
                字符的下标如果超出 字符串长度时, 返回 空字符串

    正则

     

        **定界符**
    ​
            //
    ​
            #
    ​
            {}
    ​
    ​
    ​
        **原子**
    ​
            可见原子   : 输出之后肉眼可见的字符
            不可见原子 : 输出之后肉眼看不见的字符
    ​
    ​
    ​
        **元字符**
    ​
            筛选方式 
    ​
            |  : 匹配两个或多个分支选择
            []  : 匹配里面任意一个原子
    ​
            \\\[^ ]: 匹配除中括号以外的任意一个原子
    ​
    ​
    ​
        **集合**
            \d  : 匹配任意一个数字 0-9 
            \D  : 匹配除数字以外的任意一个字符
            \s  : 匹配任意一个不可见原子
            \S  : 匹配任意一个可见原子
            \w  : 匹配任意一个数字, 字母和下划线
            \W  : 匹配除数字, 字母和下划线以外的任意一个字符
            .   : 匹配除换行符以外的任意一个字符
    ​
    ​
    ​
        **量词**      
    ​
            {n} : 匹配其前面的一个原子恰好n次        
    ​
            {n,}: 匹配其前面的一个原子至少n次        
    ​
            {n,m}: 匹配其前面的一个原子至少n次, 最多m次     
    ​
            : 0次, 1次或多次     ? : 0次或1次       + : 1次或多次
    ​
    ​
    ​
        **边界控制**        
    ​
            ^ : 以某个原子为开始        
    ​
            $ : 以某个原子为结尾    模式单元        
    ​
            ( ) : 整体为一个原子   
    ​
            模式选择        ( | ): 分隔多选一
    ​
    ​
    ​
         **模式修正符**
    ​
            U  贪婪/懒惰
                贪婪 .*   匹配结果存在歧义时, 取其长
                懒惰 .*?  匹配结果存在歧义时, 去其短
    ​
            x  忽略空白         忽略正则的空白
            i  不区分大小写   不区分正则的大小写
    ​
    ​
    ​
            **正则函数**
    ​
            preg_match(正则, 对象 [, 结果])   
            返回值: 成功匹配的次数
    ​
    ​
    ​
             **正则替换**
    ​
            preg_replace(正则, 替换值, 对象)
            返回值: 替换后的对象
    ​
    ​
    ​
            **正则过滤**
    ​
            preg_grep(正则, 数组)
            返回值: 过滤之后的数组
    ​
    ​
    ​
            **正则分组**
    ​
            模式单元: 子模式匹配
            后向引用: 
                \1: 将第一个() 的值 重复到\1的位置
                \2: 将第二个() 的值 重复到\2的位置
                ...
    ​
                取消子模式匹配:
                (?:  )

    PHP时间

     

    **时间戳**
    ​
            time()  1970-现在的秒数
    ​
    ​
    ​
        **格式化时间**
    ​
            date(日期格式[, 时间戳])
            返回值: 格式化之后的时间
    ​
    ​
    ​
        **时区**
    ​
            date_default_timezone_set('时区') 
                                    **PRC   中国**
                                    **Asia  亚洲**
                                    UTC     世界标准时间
            date_default_timezone_get()
    ​
    ​
    ​
        **创建时间**
    ​
            mktime(时, 分, 秒, 月, 日, 年)
            返回值: 时间戳
    ​
    ​
    ​
        **字符串转时间**
    ​
            strtotime()
            返回值: 时间戳
    ​
    ##      **微秒**
    ​
            microtime()
            microtime(true)

    错误机制

     

    **错误领域**
    ​
            语法错误
    ​
            运行时错误
    ​
            逻辑错误
    ​
    ​
    ​
        **错误级别**
    ​
            error 致命错误
    ​
            warning 警告错误
    ​
            notice 提示错误
    ​
    ​
    ​
        **预定义数组**
    ​
            $GLOBALS
            $_GET
            $_POST
            $_SERVER
            $_COOKIE
            $_SESSION
            $_FILES
            $_REQUEST
    ​
    ​
    ​
         **屏蔽错误 (临时性)**
    ​
            给错误变量前面加 @
    ​
            通过 函数error_reporting 来屏蔽
    ​
    ​
    ​
        **屏蔽错误 (配置)**
    ​
            display_errors = On | Off
    ​
            error_reporting = ...
    ​
            ini_set()
            ini_get()
    ​
    ​
    ​
        **自定义错误**
    ​
            trigger_error(错误信息, 错误类型)
                                E_USER_ERROR
                                E_USER_WARNING
                                E_USER_NOTICE自定义错误
            trigger_error(错误信息, 错误类型)
                                E_USER_ERROR
                                E_USER_WARNING
                                E_USER_NOTICE
    ​
    ​
    ​
        **错误日志**
    ​
            error_log(错误信息, 消息类型, 目标文件)
             将错误信息存入 目标文件中
    ​
        
    ​
        **逻辑错误**
    ​
            既不报错, 又不终止程序, 结果还是错误
    ​
            排除方法: 断点法       在怀疑的变量后面加 die, 并输出查询
                 注释法        适合于前端

    PHP文件

     

    **文件属性**
    ​
    •       filetype()      文件类型
    •       filesize()      文件大小
    •       file_exists()   文件是否存在
    •       filectime()     创建的时间
    •       filemtime()     修改的时间
    •       fileatime()     访问的时间
    •       is_readable()   是否可读
    •       is_writeable()  是否可写
    ​
    ​
    ​
    •   **文件路径**
    ​
    •       dirname()       获取目录
    •       basename()      获取文件名
    •       parse_url()     解析url地址
    •       pathinfo()      解析盘符地址
    ​
    ​
    ​
    •   **递归函数**
    ​
    •       opendir()       打开目录, 返回资源
    •       readdir()       读取资源, 返回资源名
    •       closedir()      关闭资源
    •       is_file()       是否为文件
    •       is_dir()        是否为目录
    ​
    •           1 打开目录
    •           2 读取资源
    ​
    •               2.1 排除. 和 ..
    •               2.2 凑完整路径
    •               2.3 判断是否为文件
    •               2.4 判断是否为目录
    ​
    •           3 关闭资源
    ​
    •    **目录操作**
    ​
    •           mkdir()     建
    •           rmdir()     删
    •           opendir()
    •           readdir()
    •           closedir() 
    •           is_dir()
    •           dirname() 
    •           file_exists()   
    •           filetype()
    ​
    •   **文件操作**
    ​
    •           filetype()
    •           filesize()
    •           is_file()
    •           filectime()
    •           filemtime()
    •           fileatime()
    •           touch()
    •           unlink()
    •           is_readable()
    •           is_writeable()
    •           basename()
    •           rename()
    •           copy()
    •           fopen()     返回资源
    •           fread(资源, 大小)   
    •           fwrite(资源, 内容)
    •           fclose()
    •           file_exists()
    ​
    •   **文件加载**
    ​
    •           include 
    •               格式 include '文件路径'
    •            include('文件路径')
    •            include_once '文件路径'
    •            include_once('文件路径') 
    ​
    •           什么时候执行到include , 才会去加载
    ​
    •           可以重复加载.  只加载一次通过 include_once 实现
    ​
    •           如果加载失败, 不会终止程序
    •           require
    •           格式 require '文件路径'
                require('文件路径')
    •            require_once '文件路径'
                require_once('文件路径')    
    ​
    •           什么时候执行到require , 才会去加载
    ​
    •           可以重复加载.  只加载一次通过 require_once 实现
    ​
    •           如果加载失败, 会终止程序
    ​
    •   **文件内容**
    ​
    •           file_put_contents(文件路径, 内容)
    •           file_get_contents(文件路径)
    ​
    •   
    ​
    •   **上传文件**
    ​
    •           **上传文件的三个必要条件**
    ​
    •           file表单的name
    ​
    •           form表单的enctype = multipart/form-data
    ​
    •           form表单的method = post
    ​
    ​
    ​
    •           **大小限制**
    ​
    •           表单 MAX_FILE_SIZE        自定义
    ​
    •           post限制      post_max_size = 8M          如果超出post限   制, $_FILES接收不到值
    ​
    •           服务器限制   upload_max_filesize = 2M 
    ​
    ​
    ​
    •            **判断是否从post协议传输**
    ​
    •               is_uploaded_file() 
    ​
    ​
    ​
    •           **判断文件的类型**
    ​
    •               获取文件类型
    •               准备允许类型
    •               判断 获取文件类型 是否属于 允许类型
    ​
    •               *** 设置唯一的文件名**      
    ​
    •                   获取文件的扩展名        
    ​
    •                   设置唯一的文件名    uniqid() 
    ​
    •               *** 设置唯一的文件名**  
    ​
    •                   获取文件的扩展名        
    ​
    •                   设置唯一的文件名    uniqid() 
    ​
    ####            设置存储目录
    ​
    •               设置存储目录
    ​
    •               设计存储目录
    •               判断存储目录是否存在
    •               mkdir(目录路径, 权限 0777,  递归创建 true)
    ​
    ####            移动临时文件到存储目录
    ​
    •               移动临时文件 到 存储目录
    ​
    •               move_uploaded_file( 临时文件,  目录+文件名 )
    ​
    ​
    ​
    •               **多文件上传**
    ​
    •                多文件上传
    ​
    •               file表单 加属性 multiple
    •                    name名 加[]
    ​
    ####            文件下载
    ​
    •               header('content-Disposition:attachment;
    ​
    •                    filename=下载名');
    •               readfile(下载路径)

     

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值