美文网首页
PHP常用的系统内置函数

PHP常用的系统内置函数

作者: 陈智涛 | 来源:发表于2017-10-24 18:33 被阅读0次

    一、时间日期函数

    (1)date() 格式化一个本地时间/日期

    string date ( string $format [, int $timestamp ] )
    

    返回将整数 timestamp
    按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()
    示例:

    <?php
    date_default_timezone_set('UTC');
    echo date("Y-m-d H:i:s",time()),"\n";
    echo date("Y-m-d H:i:s",time()-3600*24),"\n";
    echo date("Y-m-d H:i:s",strtotime("-1 day")),"\n";
    echo date("Y-m-d H:i:s",strtotime('1991-06-07 19:44:22')),"\n";
    echo date("Y-m-d H:i:s",strtotime('1991-06-07 19:44:22')+3600*24),"\n";
    

    运行结果:

    [root@chen function]# php demo3.php
    2017-09-29 07:18:27
    2017-09-28 07:18:27
    2017-09-28 07:18:27
    1991-06-07 19:44:22
    1991-06-08 19:44:22 
    

    (2)strtotime()
    将任何字符串的日期时间描述解析为 Unix 时间戳
    int strtotime ( string $time [, int $now = time() ] )
    示例:

    <?php
    echo strtotime('now');//1506669818
    

    (3)mktime()
    取得一个日期的 Unix 时间戳
    (4)time()

    int time ( void )
    

    返回当前的 Unix 时间戳
    (5)date_default_timezone_set()
    设定用于一个脚本中所有日期时间函数的默认时区
    示例:

    date_default_timezone_set('UTC');
    

    2、ip处理函数

    (1)ip2long
    (2)long2ip

    3、打印函数

    print(),print_r(),printf(),echo,sprintf(),var_dump()

    (1)print 和echo都是表达式语句,但print只能有一个参数,echo可以打印多个参数

    <?php
    $name = "chenzhitao";
    $age = 26;
    print($name);
    print($age);
    //print($age,$name)//error
    //print $name,$age;
    echo $name,$age;
    //echo ($name,$age);//error
    

    (2)printf()会格式化 输出,sprintf()不会打印,只会返回一个格式化字符串

    <?php
    $name = "chenzhitao";
    $age = 26;
    /*
    print($name);
    print($age);
    //print($age,$name)//error
    //print $name,$age;
    echo $name,$age;
    */
    printf("%s:%d\n",$name,$age);
    $info =sprintf("%s:%d\n",$name,$age);
    print $info;
    
    

    运行结果:

    [root@chen function]# php demo5.php
    chenzhitao:26
    chenzhitao:26
    

    (3)print print_r() var_dump()

    $a = array(1,2,3,4);
    print $a;//只会输出类型
    print_r($a);//格式化数组打印
    var_dump($a);
    

    运行结果:

    ArrayArray
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 4
    )
    array(4) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      int(3)
      [3]=>
      int(4)
    }
    

    4、序列化函数和反序列化函数

    (1)serialize
    产生一个可存储的值的表示
    serialize() 返回字符串,此字符串包含了表示 value
    的字节流,可以存储于任何地方。
    这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
    想要将已序列化的字符串变回 PHP 的值,可使用unserialize serialize() 可处理除了resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组对象中的引用也将被存储。
    当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。
    (2)unserialize()
    示例:

    <?php
    //声明一个类
    class dog {
    
        var $name;
        var $age;
        var $owner;
    
        function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
            $this->name = $in_name;
            $this->age = $in_age;
            $this->owner = $in_owner;
        }
    
        function getage() {
            return ($this->age * 365);
        }
        
        function getowner() {
            return ($this->owner);
        }
        
        function getname() {
            return ($this->name);
        }
    }
    //实例化这个类
    $ourfirstdog = new dog("Rover",12,"Lisa and Graham");
    //用serialize函数将这个实例转化为一个序列化的字符串
    $dogdisc = serialize($ourfirstdog);
    print $dogdisc; //$ourfirstdog 已经序列化为字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}
    
    print '<BR>';
    
    /* 
    -----------------------------------------------------------------------------------------
        在这里你可以将字符串 $dogdisc 存储到任何地方如 session,cookie,数据库,php文件 
    -----------------------------------------------------------------------------------------
    */
    
    //我们在此注销这个类
    unset($ourfirstdog);
    
    /*    还原操作   */
    
    /* 
    -----------------------------------------------------------------------------------------
        在这里将字符串 $dogdisc 从你存储的地方读出来如 session,cookie,数据库,php文件 
    -----------------------------------------------------------------------------------------
    */
    
    
    //我们在这里用 unserialize() 还原已经序列化的对象
    $pet = unserialize($dogdisc); //此时的 $pet 已经是前面的 $ourfirstdog 对象了
    //获得年龄和名字属性
    $old = $pet->getage();
    $name = $pet->getname();
    //这个类此时无需实例化可以继续使用,而且属性和值都是保持在序列化之前的状态
    print "Our first dog is called $name and is $old days old<br>";
    print '<BR>';
    ?>
    

    运行结果:

    O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}
    Our first dog is called Rover and is 4380 days old<br>
    

    5、字符串处理函数

    (1)impolde()
    将一个一维数组的值转化为字符串

    string implode ( string $glue , array $pieces )
    

    示例:

    <?php
    $array = array('lastname', 'email', 'phone');
    $comma_separated = implode(",", $array);
    
    echo $comma_separated; // lastname,email,phone
    
    // Empty string when using an empty array:
    var_dump(implode('hello', array())); // string(0) ""
    

    (2)explode()
    使用一个字符串分割另一个字符串

    array explode ( string $delimiter , string $string [, int $limit ] )
    

    此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。

    <?php
    // 示例 1
    $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces = explode(" ", $pizza);
    echo $pieces[0]; // piece1
    echo $pieces[1]; // piece2
    
    // 示例 2
    $data = "foo:*:1023:1000::/home/foo:/bin/sh";
    list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
    echo $user; // foo
    echo $pass; // *
    
    ?>
    

    (3)join()
    别名 implode
    (4)strrev()
    反转字符串

    string strrev ( string $string )
    

    (5)trim() ltrim() rtrim()
    去除字符串首尾处的空白字符(或者其他字符)
    (6)strstr()
    查找字符串的首次出现,返回值是字符串

    <?php
    $email  = 'name@example.com';
    $domain = strstr($email, '@');
    echo $domain; // 打印 @example.com
    
    $user = strstr($email, '@', true); // 从 PHP 5.3.0 起
    echo $user; // 打印 name
    ?>
    

    6、数组的处理函数

    (1)array_keys()
    返回数组中部分的或所有的键名
    (2)array_values()
    返回数组中所有的值
    (3)array_key_exists
    检查数组里是否有指定的键名或索引

    bool array_key_exists ( mixed $key, array $array)
    

    (4)array_rand()
    从数组中随机取出一个或多个单元
    (5)sort()
    排序
    (6)array_diff()
    计算数组的差集

    array array_diff ( array $array1 , array $array2 [, array $... ] )
    

    对比 array1 和其他一个或者多个数字,返回在 array1 中但是不在其他 array 里的值。

    <?php
    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_diff($array1, $array2);
    
    print_r($result);
    ?>
    

    运行结果:

    Array
    (
        [1] => blue
    )
    

    (7)array_intersect
    计算数组的交集
    array array_intersect ( array $array1 , array $array2 [, array $... ] )
    array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

    <?php
    $array1 = array("a" => "green", "red", "blue");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_intersect($array1, $array2);
    print_r($result);
    ?>
    

    运行结果:

    Array
    (
        [a] => green
        [0] => red
    )
    

    (8)array_merge()
    合并一个或多个数组
    array array_merge ( array $array1 [, array $... ] )
    array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

    如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

    如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
    (9)array_shift()
    将数组开头的单元移出数组

    mixed array_shift ( array &$array)
    

    array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。

    (10)array_unshift()
    在数组开头插入一个或多个单元

    int array_unshift ( array &$array , mixed $value1[, mixed$...] )
    

    array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

    <?php
    $queue = array("orange", "banana");
    array_unshift($queue, "apple", "raspberry");
    print_r($queue);
    ?>
    

    运行结果:

    Array
    (
        [0] => apple
        [1] => raspberry
        [2] => orange
        [3] => banana
    )
    

    (11)array_pop()
    (12)array_push()

    相关文章

      网友评论

          本文标题:PHP常用的系统内置函数

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