Fork me on GitHub

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();将\n转换成<br>标签
  htmlspecialchars();把特殊字符转成实体(<,>)
  strip_tags();去掉html标签
  addslashes();转义"\

20、正则表达式

  原子:

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

  元子符:

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

  模式修正符:

    i 忽略大小写
    m 视为多行(有\n换行的)
    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");

posted @ 2017-07-05 16:30  小白不白10  阅读(179)  评论(0编辑  收藏  举报