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");

  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/xiaobaibubai/p/7122115.html
Copyright © 2011-2022 走看看