php

作者: 塔库纳玛哈哈 | 来源:发表于2017-09-29 22:03 被阅读0次

    PHP简介

    PHP是一种超文本预处理语言,运行在服务器端能和html进行嵌套用于制作动态网页的语言

    特点

    • 运行在服务器端的脚本语言
    • 能支持绝大部分的操作系统
    • 能支持大部分的服务器apache IIS
    • 能支持大部分的数据库mysql sql server Acces
    • 能操作数据库
    • 能操作文件
    • 能操作图片

    与html嵌套

    在<?php ?>分隔符中的内容会被

    mamp

    集成开发环境

    静态网页

    没有链接数据库的网页

    动态网页

    链接数据库,数据库中获取数据

    数据库

    mongoDB 分布式文件存储的数据库

    数据的存储管理、定义

    关系型数据库

    mysql 关系型数据库

    在关系模型的基础上建立的数据库

    非关系型数据库

    mongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    web服务器

    提供web功能的设备

    接收请求、处理请求

    网络分发、调制解调的功能

    服务器返回数据在浏览器中呈现

    PHP

    运行在服务器端的脚本语言

    服务器

    处理用户请求

    静态资源

    .html .css .js .jpg .gif .png

    请求静态资源直接原样返回,以字符串的形式返回

    动态资源

    .php .java

    请求动态资源时,先解析PHP的代码,然后把PHP输出的结果,交给服务器返回,当浏览器接收到返回的内容,开始绘制,碰到href,src,url的时候,会再次向服务器发送请求,最终呈现整个页面

    处理过程

    当在地址栏键入地址的时候,浏览器结合我们的软硬件将http请求发送到网络中,服务器接收到我们的请求,开始处理我们的请求,请求的资源分别按照静态资源和动态资源的处理方式进行处理。

    基础

    变量

    echo

    输出到页面中为字符串

    var_dump()

    输出类型和值

    var_dump(123);  //返回    int 123;
    

    常量

    define('键','值');

    值可以用表达式来表示

    function name(){
        return 800;
    }
    defined("PI",name());   //返回    int 800;
    

    const

    值不可以用表达式

    const PI=20*30;
    var_dump(PI);
    

    常量的名字需要大写,不加$符号,一旦定义后不能更改

    常量的值不能在改变或者是被删除

    常量可以在任何位置区访问

    常量的值不能延迟求值,只能是标量

    可变变量

    将一个变量的值作为另一个变量的名字

    $nub='name';
    $$nub='123';
    var_dump($nub);     //返回“name”
    var_dump($name);    //返回“123”
    var_dump($$nub);    //返回“123”
    

    变量引用

    &

    引用地址

    $nub=200;
    $nub2=&$nub;
    $nub=300;
    echo $nub2;     //返回300;
    

    判断

    defined();

    判断常量是否被定义

    isset();

    判断变量是否被定义

    删除变量

    unset();

    数据类型9种

    标量4种

    int

    整型integer

    float/double

    浮点型

    string

    字符串

    . 点

    表示连接,可以连接两个标量

    标量连接

    $nub1=100;
    $nub2=200;
    var_dump($nub1.$nub2);  //  .表示连接
    
    “ ”双引号

    可以解析变量

    $nub=200;
    $str1="这是一个数字$nub";
    $str2="这是一个数字{$nub}asj293";
    

    boolean

    布尔类型

    复合类型3种

    对象

    class person{
        
    }
    $obj=new person();
    

    数组

    索引数组

    print_r();输出数组的形式

    echo "<pre>";
    $arr1=array('a',12,'b');
        $arr2=array(
            0=>'a',
            2=>34
        );
    print_r($arr1);
    
    关联数组
        $arr3=array(
            'name'=>'lisi',
            'age'=>13
        );
    
    二维数组
        $arr4=array(
            'name'=>array('a','2'),
            'age'=>array(1,2)
        );
    

    数组遍历

    for(只能遍历索引数组)

    for($i=0;$i<count($arr);$++){
        echo $arr[$i];
    };
    

    foreach(适用于索引数组和关联数组)

    foreach($arr1 as $item=>$value){
        echo $item.'=>'.$value;
    };
    

    callable可调用

    特殊类型2种

    null

    resource

    判断

    is_resource();

    判断是否是一个资源

    is_int(); is_integer();

    判断是否是整数

    is_flaot(); is_double();

    判断是否是小数

    is_boolean();

    is_string();

    is_null();

    is_array();

    is_object();

    获取

    gettype();

    获取数据类型

    强制转换

    函数方式强转

    intval();

    转化为整数

    strval();

    强制转化为字符串

    注意:将true转化为1,将false转化为“ ”;

    floatval();

    强制转化为小数

    doubleval();

    boolval();

    直接强转

    (int)

    (flaot)

    (double)

    (bool)

    (boolean)

    $nub='123';
    $result=(int) $nub;
    

    false的情况

    var_dump(boolval($nub));
    //0  ""  false  null  "0"  空数组;
    

    函数

    字符串函数

    strlen();

    输出字符串的长度

    trim();

    ltrim();

    rtrim();

    strtolower();

    strtoupper();

    strrev();

    md5();

    将字符串翻译成16进制的字符串

    用于加密,而且加密后不可逆

    explode();

    与js里的split();方法一样,将字符串转换成数组

    substr();

    从指定位置截取到指定长度(按字节截取)

    mb_substr();

    从指定位置截取到指定长度(按字符截取)

    strstr();

    从匹配到的第一个字符开始截取的

    最后的参数决定了向前还是向后截取

    strpos();

    从开始查找指定字符首次出现的位置

    最后一个参数offset表示是从哪个index位置开始查起,如果找不到返回false

    strrpos();

    从最后开始查找指定字符首次出现的位置

    str_replace();

    替换(区分大小写)

    参数search,

    str_ireplace();

    替换(不区分大小写)

    数组函数

    in_array();

    判断某个值在不在数组里,可以启用全等

    $arr=array(11,22,33);
    $brr=array(
        'name'=>'lisi',
        'age'=>18
    );
    var_dump(in_array(11,$arr));    //bool(true)
    var_dump(in_array('18',$brr));  //bool(true)
    var_dump(in_array(18,$brr));    //bool(true)
    var_dump(in_array('name',$brr));    //bool(false)
    

    array_search();

    在数组中搜索给定的值,如果成功则返回响应的键名,若找不到返回false

    $arr=array(11,22,33);
    $brr=array(
        'name'=>'lisi',
        'age'=>18
    );
    var_dump(array_search(18,$brr,true));   //string(3) "age"
    

    array_key_exists();

    判断某个值是不是数组中的键,如果有返回true,没有就返回false;

    $arr=array(11,22,33);
    $brr=array(
        'name'=>'lisi',
        'age'=>18
    );
    
    //array_key_exists();
    var_dump(array_key_exists('lisi',$brr));    //bool(false)
    var_dump(array_key_exists('name',$brr));
    //bool(false)
    

    array_filter();

    用回调函数过滤数组中的元素

    $arr=array(11,22,33);
    $brr=array(
        'name'=>'lisi',
        'age'=>18
    );
    echo "<pre>";
    var_dump(array_filter($brr,function($value){
        return  $value;
    }));
    //array(2) {
      ["name"]=>
      string(4) "lisi"
      ["age"]=>
      int(18)
    }
    

    array_walk();

    类似foreach,将每个值都执行一个函数

    
    

    array_map();

    将用户自定义函数作用到给定数组的每个值上,返回新的值

    array_push();

    将数组的后面推入一个或多个新元素,会影响到原数组(入栈)

    array_pop();

    删除数组中的最后一个元素(出栈)

    array_shift();

    删除数组中的指定元素去掉并用其他值取代

    array_unshift();

    在数组前面插入一个或者多个元素

    array_keys();

    返回的是由键组成的数组,如果有第二个参数,那么返回鱼第二个参数匹配的键

    array_values();

    返回数组中所有的值

    array_sum();

    返回数组中所有值的和

    array_merge();

    将一或者多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面

    $array1 = array(
        "color" => "red", 
        2, 
        4
    );
    $array2 = array(
        "a", 
        "b", 
        "color" => "green", 
        "shape" => "trapezoid", 
        4
    );
    $result = array_merge($array1, $array2);
    print_r($result);
    //输出以下结果
    // Array
    // (
    //    [color] => green
    //    [0] => 2
    //    [1] => 4
    //    [2] => a
    //    [3] => b
    //    [shape] => trapezoid
    //    [4] => 4
    // )
    

    array_merge_recursive();

    合并多多数组,如果有相同的键值,那么后者就会覆盖前者

    $ar1=array(
        'color'=>array(
            'favorite'=>'red'
        ),
        5
    );
    $ar2=array(
        10,
        'color'=>array(
            'favorite'=>'green',
            'blue'
        )
    );
    echo "<pre>";
    $result = array_merge_recursive($ar1, $ar2);
    print_r($result);
    // 以上结果会输出
    // Array
    // (
    //    [color] => Array
    //        (
    //            [favorite] => Array
    //                (
    //                    [0] => red
    //                    [1] => green
    //                )
    //
    //            [0] => blue
    //        )
    //
    //    [0] => 5
    //    [1] => 10
    // )
    

    array_unique();

    去重复

    array_rand();

    随机取数组里面的值,如果取多个那么返回的是键组成的数组

    sort();

    按照值进行升序排序,重新排键

    rsort();

    按照值进行降序排序,重新排键

    asort();

    按照升序进行排序,保持原来的键

    arsort();

    按照升序进行排序,保持原来的键

    ksort();

    按照键进行升序排序

    krsort();

    按照键进行降序排序

    数学函数

    abs();

    ceil();

    floor();

    max();

    min();

    round();

    mt_round();

    生成随机整数

    pow();

    PHP函数

    如果定义了形式参数,必须传递一个实际参数

    判断方法

    function_exists();

    判断一个函数是否存在

    可变函数

    function fun(){
        echo 123;
    }
    $name='fun';
    $name();
    

    作用域

    全局变量

    全局变量只能在全局里面使用,不能在局部用

    从外面传值

    $nub=200;
    function fun(&$aa){
        $aa=300;
        echo $aa;
    }
    fun($nub);
    echo $nub;
    

    声明外全局变量

    $nub=200;
    function fun(){
        global $nub
        echo $nub;
    }
    fun();
    

    超全局变量

    $GLOBALS

    $nub=200;
    function fun(){
        $GLOBALS['nub']=300;
        echo $GLOBALS['nub'];
    }
    fun();
    echo $nub;
    

    $_GET

    $_POST

    $_REQUSET

    $_FILES

    $_SERVER

    $_SESSION 服务器端的session

    $_COOKIE

    局部变量

    静态变量

    static

    在函数第一次运行的时候,会把静态变量保存下来,后面在用的时候会用到静态变量

    function fun(){
        static $nub=200;
        $nub+=1;
        echo $nub;
    }
    fun();  //200;
    fun();  //201;
    

    回调函数

    传参的方式回调

    函数的名字不能直接作为参数用,需要加引号

    function aa(){
        echo 123;
    }
    function fun($callback){
        $callback();
    }
    fun('aa');  //123;
    

    在实际参数里面直接写回调函数

    function fun($callback){
        $callback();
    }
    fun(function(){
        echo 123;
    });     //123;
    

    require

    在PHP页面引入其他文件,实现代码复用

    如果找不到要引入的文件,会erro报错,程序停止

    include

    在PHP页面引入其他文件,实现代码复用

    如果找不到要引入的文件,会warning报警,程序会继续往下运行

    时间

    设置时间

    date_default_timezone_set(timezone indentifier:"Asia/Shanghai");

    获取时间的区域

    date_default_timezone_set();

    time();

    距离计算机元年的

    microtime();

    毫秒数

    date()

    var_dump(date(Y-m-d H-));
    

    A:"AM"或者是"PM";

    d:几日,两位数字,若不足则补零,从“01”至“31”;

    D:星期几,3个英文字母,如:“Fri”;

    F:月份,英文全名,如:“January”;

    h:12小时制的小事,从“01”至“12”;

    H:24小时制的小事,从“00”至“23”;

    g:12小时制的小事,不补零,从“1”至“12”;

    G:24小时制的小事,不补零,从“0”至“23”;

    j:几日,不足不补零,从“1”至“31”

    l:星期几,英文全名,如“Friday”

    m:月份,两位数字,从“01”至“12”;

    n:月份,两位数字,从“01”至“12”;

    M:月份,3个英文字母,如:“Jan”;

    s:秒,从“00”至于“59”;

    S:

    getdate();

    mktime();

    服务器存储

    cookie

    设置cookie

    setcookie();

    setcookie('name','123',time()+40);

    删除cookie

    setcookie('name','123',time()-1);

    session

    开启session

    session_start();
    

    设置session

    $_SESSION['name']='123';
    

    删除session

    unset($_SESSION['name']);
    

    验证码

    创建图片

    $img=imagecreatetruecolor(width:120,height:40);
    $color1=imagecolorallocate($img,red:,green:,blue:);
    $color2=imagecolorallocate($img,red:,green:,blue:);
    for($i=0;$i<20;i++){
        $color=imagecolorallocate($img,red:md_rand(),green:,blue:);
        imagesetpixel();    //画圆点;
    }
    imageline($img,);
    imagefill($img,x:0,y:0,$color1);
    header("content-type:image/png");
    imagepng($img);
    //imagejpeg();
    imagedestroy($img); //释放资源
    //$color=imagecolorallocatealpha();
    

    在html中请求图片

    ![](checkcode.php)
    

    魔术常量

    var_dump(__DIR__);              //
    var_dump(__FILE__);
    var_dump(basename(__FILE__));   //从一个路径中,返回文件名字
    var_dump(dirname(__FILE__));    //从一个路径中返回路径
    
    var_dump(file_exists());
    is_dir();
    is_file();
    

    rmdir(); 删除空文件夹

    unlink(); 删除路径

    相关文章

      网友评论

          本文标题:php

          本文链接:https://www.haomeiwen.com/subject/qxuwextx.html