zoukankan      html  css  js  c++  java
  • php基础

    1.变量:
    声明变量:
    $name='小明';
      输出变量也要加$,html模版输出变量{$name}
      变量名区分大小写,函数名不区分大小写。
    删除变量:
      unset($name)
    常量:
      使用 define() 函数,一旦被定义就不能修改 define("HOST","localhost")
    检测变量:
      isset:变量是否存在(没声明,值为null就算不存在,存在输出1,不存在为空)
      empty:变量是否为空(0,‘’,‘0’,false,array(),null,没声明,空输出1,不空输出空)


    2.输出:
      echo - 可以输出一个或多个字符串 echo $name; 一般用来输出变量
      print - 只允许输出一个字符串,返回值总为 1; print $name
      var_dump($name);一般用来输出数组,并打印数据类型,及长度
      print_r($name) ;一般用来输出数组,不打印类型


    3.数据类型:
      String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。



    字符串:
      字符串连接符用 .
    布尔型:
      echo输出ture为1,输出false为空
    数组:
      $arr=array('a','b','c') 索引数组 $arr[1] 读取 $arr[]='d' 末尾添加
      $arr=array('name'=>'a','age'=>'20') 关联数组

    多维数组:   $arr(1,2,3,array(4,5))
          $arr[2][0] //0


    对象:
      对象有两部分:属性,方法(函数)
    资源类型:
      资源类型:连接数据库资源,文件打开资源

    4.PHP 流程及循环:
      if(){ }else { }
      $a=2;
      switch($a){
      case 1:
        break;(结束本层循环)
      case 2:
        continue;(结束本次循环)

      }

      while(){ } - 只要指定的条件成立,则循环执行代码块
      do{ }while() - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
      for(){ } - 循环执行代码块指定的次数
      foreach - 根据数组中每个元素来循环代码块

    5、中止脚本:
      exit;
      exit();(两个相同直接中止)
      die;(从这开始中止)
      die();

    6、函数:
      自定义函数:function fn(){ }
      变量函数:变量等于一个函数

    7、变量作用域(和js不同)
      全局变量:函数外的变量
      局部变量:函数内的变量(函数内部不能改变外部变量,想要改变要么return,要么加global 变成全局变量)

    8、引用参数:

      函数内部和外部指向同一个变量地址,改变函数内部变量的值,函数外部也发生变化


    9、回调函数:

      函数的参数是一个函数,这个参数函数就是回调函数

    10、静态变量:

      用static修饰的变量(多次调用同一个函数,静态变量一直跟踪)

    11、文件包含:

       include('')(出错没找到文件下文接着执行)

       require('')(出错没找到文件脚本直接中止下文不执行)

    12、递归函数:

      函数内部调用函数自己

    13.date:

      $t=date("H");  时间‘H’24小时, ‘h’12小时, ‘y’是年 ‘w’日期

    14.遍历数值数组:

      (1)$arrlength=count($arr);//获取数组的长度

        for($i=0;$x<$arrlength;$i++)
          {
            echo $arr[$i];
            echo "<br>";
          }


      (2)foreach($arr as $key=>$val)
          {
            echo "<h1>{$key}:{$val}</h1>";
            echo "<br>";
          }

     15.超级全局变量:

      $GLOBALS   获取所有全局变量

      $_SERVER    查看服务器信息

      $_REQUEST    get和post都能获取到(慢一般不用)

      $_POST              表单数据一般用post提交

      $_GET                获取get提交过来的数据,一般用在a标签上,地址栏有参数

      $_FILES             文件上传

      $_COOKIE         同一个变量在多个页面都能获取到

      $_SESSION       同一个变量在多个页面都能获取到

    16.数组函数:提供了很多官方写的非常有用的代码段,提高编写速度。

    1.数组的键值操作函数
        array_values();
        $keys=array_keys($arr);
        print_r($keys);
        in_array("val",$arr);//查某个值是否在数组里
        array_key_exists();//检查某个键是否在数组里
        $arr2=array_flip($arr);//颠倒数组的键值
        array_reverse($arr);//颠倒数组顺序
        count($arr);//数组长度
        array_count_values($arr)//统计数组中的相同值的个数
        array_unique($arr)//数组去重
    2.使用回调函数处理数组的函数:
        $arr=array("user1"=>50,"user2"=>60,"user3"=>70)

          function jieguo($val){
            if($val>=60){
              return true;

              }

              }
            array_filter($arr,"jieguo");//过滤

              $arr=array(1,2,3);
        function add($val){
            return $val+1;
            }
          $arr2=array_map("add",$arr);//数组的值每个都加一(array(2,3,4))
    注:函数参数带&符函数内部改变改变这个参数,函数外部也改变


    17.数组排序函数:

        sort($arr) - 对数组进行升序排列,不保留key
        rsort() - 对数组进行降序排列,不保留key
        asort() - 根据关联数组的值,对数组进行升序排列
        ksort() - 根据关联数组的键,对数组进行升序排列
        arsort() - 根据关联数组的值,对数组进行降序排列
        krsort() - 根据关联数组的键,对数组进行降序排列

        natsort()-自然数排序(升序)
        natcasesort-忽略大小写的自然数排序(升序)

    $arr=array("aaa","bbbbb","cc","dddd");
        foreach($arr as $val){
          $lens[]=strlen($val);//字符串长度
          }

        array_multisort($lens,SORT_ASC,$arr);//多数组排序
        sort($lens);
        $arr2=array_combine($lens,$arr);//合并两个数组
        print_r($arr2);

    18.拆分,合并,截取与结合函数

      $str="a-b-c-f"
      $arr=explode("-",$str);//以"-"拆分字符串变成数组
      $str=implode("-",$arr)//以"-"将数组拼成成字符串
      join();//同implode()
      array_slice($arr,0,3)//截取数组从0开始截,截3个,不改变原数组
      array_splice($arr,0,3)//截取数组从0开始截,截3个,改变原数组,第四个参数是替换
      array_merge($arr1,$arr2)//合并两个数组
      array_combine($arr1,$arr2)//第一个数组变成key第二个数组变成val,合并成一个新数组
      array_intersect($arr1,$arr2)//两个数组相同的(交集)
      array_diff($arr1,$arr2)//第一个数组和第二个数组比有哪些不同的(差集)
      array_pop($arr)//删除数组最后一个值
      array_push($arr,"dd")//数组最后添加一个值
      array_shift($arr)//删除数组第一个值
      array_unshift($arr,"dd")//数组开头添加
      array_rand($arr)//从数组中随机选出key
      shuffle($arr)//随即打乱数组
      range(1,5)//组成1-5的数组
      array_sum($arr)//计算数组和

    19、字符串函数

      pathinfi($str)//将地址拆分
      $arr=parse_url($str)//将url地址拆分成数组
      parse_str($arr['query'],$arr2)//拆分参数

      strlen();字符串长度
      strrev();颠倒字符串
      md5();加密
      number_format();以特殊格式分割字符串

      ltrim();去掉字符串首空格
      rtrim();去掉字符串尾空格
      trim();去掉字符串首尾空格
      str_pad();填充字符
      str_repeat();重复多少次字符

      strtoupper();转大写
      strtolower();转小写
      ucfirst();首字母大写
      ucwords();每个字母首字母都大写
      str_shuffle();//随即输出字符串
      nl2br();将 转换成<br>标签
      htmlspecialchars();把特殊字符转成实体(<,>)
      strip_tags();去掉html标签
      addslashes();转义"

    20、正则表达式

      原子:

        . 任意一个字符
        w 任意字母数字下划线
        []它里面的任意一个字符
        ()它里面所匹配的就是一个单元
        d 任意一个数字
        D 任意一个非数字
        W 除了字母数字下划线任意一个字符
        s 空白字符
        S 除了空白字符任意一个字符
        [^abc]除了abc任意一个字符

      元子符:

        * 0个 一个 多个
        + 一个 多个
        ? 0个 一个
        | 或
        ^ 以。。开头
        $ 以。。结尾
        {2}两个原子
        {2,}两个以上前面的字符
        {2,5}2-5个前面的字符
         词边缘
        B 非边缘词

      模式修正符:

        i 忽略大小写
        m 视为多行(有 换行的)
        s 视为一行
        U 贪婪模式
        e 替换用的


      $reg="/w*/";
      preg_match($reg,$str,$mats);查找
      print_r($mats)

      preg_match_all();
      preg_grep();
      preg_replace($reg,$rep,$str);替换
      preg_split();分割

     21、数学函数

      max();找出最大值

      min();找出最小值

      mt-rand(1,5);随机从1-5中取一个

      ceil();往上取值整数

      floor();往下取值整数

      round();四舍五入

      pi();圆周率

    22、日期函数

      time()//时间戳
      data()//$t=date("Y-m-d H:i:s",timmer()+8*3600);
      时间‘H’24小时,‘h’12小时,
      ‘Y’是年2017‘y’是年17
      ‘w’周几
      ‘m’是月 n 月没前导0
      ‘d’是天 j天没前导0
      ‘t’一个月多少天
      ‘L’是否为闰年
      ‘s’秒;
      ‘i’分钟
      strtotime("2017/12/6");//日期转换成时间戳
      microtime();微秒

    23、文件函数

      $filename="a.txt"
      is_dir();是否是目录s
      is_file();是否是文件
      file_exists();是否存在文件或目录
      filesize();文件或目录大小
      unlink();删除文件
      copy();复制文件
      rename();重命名
      fclose();关闭文件
      fopen($filename,"w");打开文件(“w”没有就新建 )
    模式:
      r 只读
      w 只写
      r+ 读写
      w+ 读写(先清除所有再写)

      fread();读
      file();读取文件
      file_get_contents();//读取文件
      readfile()读取文件

      fwrite();写入文件
      file_put_contents($filename,$str,FILE_APPEND);//写入文件

     24、上传文件

      $tmpfile=$_FILES['file']['tmp_name'];临时文件夹路径
      $dstfile="uploads/imgs/".$_FILES['file']['name'];移动到的文件路径和名称
      move_uploaded_file($tmpfile,$dstfile);移动被上传的文件

    25、文件下载
      header("content-type:image/png");
      header("content-disposition:attachment;filename=a.txt")
      header("content-length:30kb");
      readfile("a.txt");

  • 相关阅读:
    【重磅资料】ArchSummit全球架构师峰会·2019华为云技术专场资料下载
    00074_Array类
    JSP中RequestDispatcher的用法
    最近6个月的感受
    java大文件(百M以上)的上传下载功能
    java大文件(百M以上)的上传下载解决方案
    java大文件(百M以上)的上传下载方案
    java大文件(百M以上)的上传下载技术
    wangEditor
    umeditor
  • 原文地址:https://www.cnblogs.com/xiaobaibubai/p/7122115.html
Copyright © 2011-2022 走看看