• php常用内置函数


    PHP 魔术常量

    PHP 向它运行的任何脚本提供了大量的预定义常量。

    不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

    有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

    例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:

    http://www.runoob.com/php/php-magic-constant.html


    __DIR__ 和__FILE__ 

    echo __FILE__.'<br>';  //D:xampphtdocslayhmapphomecontrollerEntry.php
    echo __DIR__.'<br>';   //D:xampphtdocslayhmapphomecontroller
    $dir = dirname(__FILE__).'<br>'; //D:xampphtdocslayhmapphomecontroller
    echo $dir;

      


     file_put_contents

    写日志

     方法一(适合临时用):

    //数组/字符串都可以
    file_put_contents( 'log.log', date('Y-m-d H:i:s',time()) .' ' . var_export($_REQUEST,true) . "
    ", FILE_APPEND);

     方法二:

    例:    /www.wdmcake.com/data/log/日期/$file文件名
    /**
    *$str array/str 要写入的内容
    *$dir str 日期文件夹里面的新建的文件夹名字  例如 /www.wdmcake.com/data/log/201806/sms_apiaas
    *$file string 文件的名字 例:send_log_20180628.log
    */
    function wdmlog($str,$dir='log',$file='log')
    {
        if (!file_exists(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir))
        {
            make_dir(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir);
        }
        $str = is_array($str) ? var_export($str,true):$str;
           file_put_contents(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir.'/' . $file .'_' . date('Ymd') . '.log', local_date('Y-m-d H:i:s') .' ' . $str . "
    ", FILE_APPEND);
    
    }

    方法三:

    function create_log($data,$merchant,$agency,$file='')
    {
       if(empty($merchant)) die("商户code不可为空");
       if(empty($agency)) die("平台code不可为空");
       $file_path = ROOT_PATH . 'logdata/'.$merchant.'/'.$agency;
       if(!is_dir($file_path)){
            mkdir($file_path, 0777, true); 
        }    
        file_put_contents($file_path.'/'.$agency.'_' . $file . date('Ymd',time()) . '.log', date('Y-m-d H:i:s',time()) .' ' . var_export($data,true) . "
    ", FILE_APPEND);
       }

    var_export()和var_dump()

    var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值。看下面一个简单的例子:

    <?php
        
        $arr = array ( 1 , 2 , array ( "apple" , "banana" , "orange" ));  
        var_export ( $arr );  
        
    ?>

    程序输出:

    array (
      0 => 1,
      1 => 2,
      2 => 
      array (
        0 => 'apple',
        1 => 'banana',
        2 => 'orange',
      ),
    )

    注意,上面的输出是合法的PHP代码。假如用var_dump(),则输出为:

    array(3) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      array(3) {
        [0]=>
        string(5) "apple"
        [1]=>
        string(6) "banana"
        [2]=>
        string(6) "orange"
      }
    }

    可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

    <?php
        
        $v = 'nowamagic';  
        $rs = var_export ( $v, TRUE );  
        
        echo $rs;
    ?>

    程序运行结果:

    'nowamagic'

    注意两点:

    • var_export()会一直保留着结构化形式存储数据.
    • 但是特别请记住:此时的变量值的类型已是字符串了($var),不能再以数组的方式取出里面的值来。 

    在PHPCMS的源码里,可以看到很多配置的参数都用数组记录的,包括它们的频道、内容等等。

    function cache_write($file, $string, $type = 'array')  
    {  
        if(is_array($string))  
        {  
            $type = strtolower($type);  
            if($type == 'array')  
            {  
                $string = "<?php
     return ".var_export($string,TRUE).";
    ?>";  
            }  
            elseif($type == 'constant')  
            {  
                $data='';  
                foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','".  
    addslashes($value)."');
    ";  
                $string = "<?php
    ".$data."
    ?>";  
            }  
        }  
        $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string);  
        chmod(PHPCMS_CACHEDIR.$file, 0777);  
        return $strlen;  
    }  

    例子:

     1 $str="name=Peter&age=43";
     2 parse_str($str,$arr); //k=v形式的字符串转成数组
     3 var_dump($arr);
     4 
     5 $str = "tn=monline_dg&ie=utf-8&bs=httpbuildurl&f=3&rsv_bp=1&wd=php+buildquery&rsv_sug3=17&rsv_sug4=330&rsv_sug1=16&oq=php+build&rsv_sug2=0&rsp=0&inputT=8922";
     6 parse_str($str,$arr);  //k=v形式的字符串转成数组
     7 var_dump($arr);
     8 
     9 $url=var_export($arr,true); //k=v形式的字符串转成数组
    10 $url2 = http_build_query($arr);  //关联数组转成k=v形式的字符串
    11 echo($url);
    12 echo '<br>';
    13 echo($url2);
    14 die;

    打印结果:

     1 array(2) {
     2   ["name"]=>
     3   string(5) "Peter"
     4   ["age"]=>
     5   string(2) "43"
     6 }
     7 array(13) {
     8   ["tn"]=>
     9   string(10) "monline_dg"
    10   ["ie"]=>
    11   string(5) "utf-8"
    12   ["bs"]=>
    13   string(12) "httpbuildurl"
    14   ["f"]=>
    15   string(1) "3"
    16   ["rsv_bp"]=>
    17   string(1) "1"
    18   ["wd"]=>
    19   string(14) "php buildquery"
    20   ["rsv_sug3"]=>
    21   string(2) "17"
    22   ["rsv_sug4"]=>
    23   string(3) "330"
    24   ["rsv_sug1"]=>
    25   string(2) "16"
    26   ["oq"]=>
    27   string(9) "php build"
    28   ["rsv_sug2"]=>
    29   string(1) "0"
    30   ["rsp"]=>
    31   string(1) "0"
    32   ["inputT"]=>
    33   string(4) "8922"
    34 }
    35 array (
    36   'tn' => 'monline_dg',
    37   'ie' => 'utf-8',
    38   'bs' => 'httpbuildurl',
    39   'f' => '3',
    40   'rsv_bp' => '1',
    41   'wd' => 'php buildquery',
    42   'rsv_sug3' => '17',
    43   'rsv_sug4' => '330',
    44   'rsv_sug1' => '16',
    45   'oq' => 'php build',
    46   'rsv_sug2' => '0',
    47   'rsp' => '0',
    48   'inputT' => '8922',
    49 )<br>tn=monline_dg&ie=utf-8&bs=httpbuildurl&f=3&rsv_bp=1&wd=php+buildquery&rsv_sug3=17&rsv_sug4=330&rsv_sug1=16&oq=php+build&rsv_sug2=0&rsp=0&inputT=8922

    compact()函数

    http://www.runoob.com/php/func-array-compact.html

    实例一:

    创建一个包含变量名和它们的值的数组:

    1 <?php
    2 $firstname = "Peter";
    3 $lastname = "Griffin";
    4 $age = "41";
    5 
    6 $result = compact("firstname", "lastname", "age");
    7 
    8 print_r($result);
    9 ?> 

    打印效果:

     Array ( [firstname] => Peter [lastname] => Griffin [age] => 41 )  

    实例二:

     1 <?php
     2 $user = [
     3                 'username' => 'lisi1',
     4                 'age' => 26,
     5         ];
     6 
     7$article = [
     8                 'title' => 'this is test',
     9           ];
    10 
    11 print_r(compact('user', 'article'));
    12 die;
    13 ?>

    效果:

    Array
    (
        [user] => Array
            (
                [username] => lisi1
                [age] => 26
            )
    
        [article] => Array
            (
                [title] => this is test
            )
    
    )

     isset() 函数

    isset() — 检测变量是否设置。
    如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
    $a = "test";
    $b = "anothertest";
    
    var_dump(isset($a));      // TRUE
    var_dump(isset($a, $b));  // TRUE
    检测变量是否设置,并且不是 NULL。
    如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。
    unset ($a);
    
    var_dump(isset($a));      // FALSE
    var_dump(isset($a, $b));  // FALSE
    若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
    同时要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数。
    $foo = NULL;
    var_dump(isset($foo));    // FALSE

    empty() 方法

    当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.

    以下的东西被认为是空的:

        "" (空字符串)
        0 (作为整数的0)
         0.0 (作为浮点数的0)
        "0" (作为字符串的0)
        NULL
        FALSE
        array() (一个空数组)
        $var; (一个声明了,但是没有值的变量)

    pathinfo() 函数

    定义和用法

    pathinfo() 函数以数组的形式返回关于文件路径的信息。

    返回的数组元素如下:

    • [dirname]
    • [basename]
    • [extension]

    http://www.runoob.com/php/func-filesystem-pathinfo.html

    thinkphp5中:

    $basename = Request::instance()->root();
    if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {
        $basename = dirname($basename);
    }

    弹出地址栏里的最后/后的参数

    array_pop(explode("/",$path));


    dirname()

    http://www.w3school.com.cn/php/func_filesystem_dirname.asp

    定义和用法

    dirname() 函数返回路径中的目录部分。

    例子:

    <?php
    echo dirname("c:/testweb/home.php");
    echo dirname("/testweb/home.php");
    ?>

    输出

    c:/testweb
    /testweb

    basename() 函数

    http://www.runoob.com/php/func-filesystem-basename.html

    basename() 函数返回路径中的文件名部分。

    实例

    1 <?php
    2 $path = "/testweb/home.php";
    3 
    4 //Show filename with file extension
    5 echo basename($path) ."<br/>";
    6 
    7 //Show filename without file extension
    8 echo basename($path,".php");
    9 ?> 

    上面的代码将输出:

    home.php
    home


    filesize() 函数

    定义和用法

    filesize() 函数返回指定文件的大小。

    如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。

    语法

     filesize(filename)  

    http://www.runoob.com/php/func-filesystem-filesize.html


    file_exists()

    定义和用法

    file_exists() 函数检查文件或目录是否存在。

    如果指定的文件或目录存在则返回 TRUE,否则返回 FALSE。

    http://www.runoob.com/php/func-filesystem-file-exists.html


    php函数filetime获取文件最后修改时间

    filetime函数
    定义和用法
    filemtime() 函数返回文件内容上次的修改时间。
    若成功,则时间以 Unix 时间戳的方式返回。若失败,则返回 false。

    语法
    filemtime(filename)

    参数 描述
    filename 必需。规定要检查的文件。

    说明
    本函数返回文件中的数据块上次被写入的时间,即文件的内容上次被修改的时间。

    例如:

    1 <?php
    2 echo filemtime("test.txt");
    3 echo "Last modified: ".date("F d Y H:i:s.",filemtime("test.txt"));
    4 
    5 //filemtime() 函数返回文件内容上次的UNIX修改时间。
    6 //返回
    7 //1139919766
    8 //Last modified: February 14 2006 13:22:46.
    9 ?>

    PHP_EOL

    换行符

    unix系列用

    windows系列用

    mac用

    PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性

    1 <?php
    2     echo PHP_EOL;
    3     //windows平台相当于    echo "
    ";
    4     //unixlinux平台相当于    echo "
    ";
    5     //mac平台相当于    echo "
    ";

    get_defined_constants()返回所有常量数组

    类似常用的还有

    DIRECTORY_SEPARATOR

    可以用函数get_defined_constants()来获取所有PHP常量

    1 <?php
    2     print_r(get_defined_constants());//get_defined_constants()返回所有常量数组

    大小写转换:

    http://www.runoob.com/php/func-string-ucwords.html


    class_exists — 检查类是否已定义

    bool class_exists ( string $class_name [, bool $autoload = true ] )

    检查指定的类是否已定义。

    function __autoload($class){
        include($class.'.php');
        if(!class_exists($class)){
            trigger_error("Unable to load class: $class",E_USER_WARNING);
        }
    }

    PHP is_file() 函数

    定义和用法

    is_file() 函数检查指定的文件是否是常规的文件。

    如果文件是常规的文件,该函数返回 TRUE。

    <?php
    $file = "test.txt";
    if(is_file($file))
    {
    echo ("$file is a regular file");
    }
    else
    {
    echo ("$file is not a regular file");
    }
    ?>

    上面的代码将输出:

    test.txt is a regular file

    php中目录与文件操作详解

    http://www.jquerycn.cn/a_9928

    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    POJ-2528 Mayor's posters 线段树 离散化
    POJ 3468 A Simple Problem with Integers 线段树区间修改
    CodeForces
    POJ3208 Apocalypse Someday 数位DP经典绝世好题
    CodeForces114 Double Happiness 数论 二次筛法 bitset的应用
    P3146 [USACO16OPEN]248 G 区间DP 暴力DP
    【Python学习】requests短连接
    【Windows学习】免登录和自动登录
    【Linux学习】expect远程下载和上传样例
    【Linux学习】软件包管理-wget,rpm,yum,apt-get
  • 原文地址:https://www.cnblogs.com/haima/p/9393859.html
Copyright © 2020-2023  润新知