写项目: 常用的PHP 函数 总结

json_encode

/**
*json_encode(pam1,pam2,pam3) 对变量进行 JSON 编码
* pam1 必填 待编码的值 ,除了resource 类型之外,可以为任何数据类型
* pam2 常量组成的二进制掩码
* pam3 设置最大深度。 必须大于0
*/

    $arr=['id'=>1,'name'=>'ls','sex'=>'男','age'=>18];
    echo json_encode($arr);  // {  id: 1, name: "ls",sex: "男",age: 18  }

json_decode

/**
* json_decode(pam1,pam2,pam3,pam4)函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量
* pam1 必填 待解码的 JSON 字符串,必须是 UTF-8 编码数据
* pam2 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。
* pam3 整数类型的参数,它指定递归深度
* pam4 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING
*/

    $arr=['id'=>1,'name'=>'ls','sex'=>'男','age'=>18];
    $val=json_encode($arr);
    var_dump(json_decode($val)); 
    //object(stdClass)#186 (4) { ["id"]=> int(1) ["name"]=> string(2) "ls" ["sex"]=> string(3) "男" ["age"]=> int(18) }

isset()

/**
* isset() 检测变量是否已设置并且非 NULL
* 返回值 true 或 false (1-未定义变量,2-数据为null)
*/

    $a='';
    var_dump(isset($a));   // bool(true)
    $a=false;
    var_dump(isset($a));   // bool(true)
    $a=Null;
    var_dump(isset($a));   // bool(false)
    $a;
    var_dump(isset($a));   // bool(false)

empty()

/**
* empty() 检查一个变量是否为空 为空便为true
* 返回值 true 或 false
*/

     $a='';
     var_dump(empty($a));  // bool(true)
     $a=0;
     var_dump(empty($a));  // bool(true)
     $a=array();
     var_dump(empty($a));  // bool(true)
     $a='0';
     var_dump(empty($a));  // bool(true)
     $a='0.0';
     var_dump(empty($a));  // bool(false)

impload

/**
* impload(pam1,pam2) 将数组 分割成字符串
* pam1 可选。规定数组元素之间放置的内容。默认是 “”(空字符串)
* pam2 必填
*/

    $arr=['Hellow','wpt'];
    var_dump(implode($arr));        //  Hellowwpt
    var_dump(implode(',',$arr));    //  Hellow,wpt

expload

/**
* expload(pam1,pam2,pam3) 将字符串分割成数组
* pam1 必需。规定在哪里分割字符串。
* pam2 必需。要分割的字符串。
* pam3 可选。规定所返回的数组元素的数目 大于 0 - 返回包含最多 limit 个元素的数组 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组0 - 返回包含一个元素的数组
*/

    $str='Hellow,wpt,n,h';
    print_r(explode(',',$str));   // Array ( [0] => Hellow [1] => wpt [2] => n [3] => h )
    echo '<hr>';
    print_r(explode(',',$str,2)); // Array ( [0] => Hellow [1] => wpt,n,h )
    echo '<hr>';
    print_r(explode(',',$str,-1)); // Array ( [0] => Hellow [1] => wpt [2] => n )
    echo '<hr>';
    print_r(explode(',',$str,0));  // Array ( [0] => Hellow,wpt,n,h )

in_array()

/**
* in_array(pam1,pam2,pam3) 函数搜索数组中是否存在指定的值
* pam1 必需。规定要在数组搜索的值。
* pam2 必需。规定要搜索的数组。
* pam3 可选。如果设置该参数为 true,则检查搜索的数据与数组的值和数据类型是否相同。
* 返回值 如果在数组中找到值则返回 TRUE,否则返回 FALSE
* 注释:如果 pam1 参数是字符串,且 pam3 参数设置为 true,则搜索区分大小写。
*/

     $arr=[23,'name','good'];
     var_dump(in_array('23',$arr));       // bool(true)
     var_dump(in_array('23',$arr,true));  // bool(false)

strlen

/**
* strlen(pam1) 函数返回字符串的长度
* pam1 必需。规定要检测的值
*
* 返回值 若成功则返回字符串的长度,若字符串为空则返回 0。
*/

    $str='12sdfsdf';
    echo strlen($str); // 8
    $str=(int)(12313188823);
    var_dump($str);    // int(12313188823)
    echo strlen($str); // 11

强制类型转换

/**
* 强制类型转换
* (int)转换成整型 (bool)转换成布尔型 (float、double、real)转换成浮点型
* (array)转换成数组 (string)转换成字符串
*/

    var_dump((int)('13adasd'));   // int(13)
    var_dump((int)(12.1));        // int(12)

    var_dump((bool)(1));          // bool(true)
    var_dump((bool)(-1));         // bool(true)
    var_dump((bool)(null));       // bool(false)
    var_dump((bool)(0));          // bool(false)

    var_dump((float)(12));        // float(12)
    var_dump((float)(-12.2));     // float(-12.2)
    // var_dump((float)(123vvs));    //报错
    var_dump((float)(null));      // float(0)
    var_dump((float)(0));         // float(0)

    var_dump((array)(1));         // array(1) { [0]=> int(1) }
    var_dump((array)(0));         // array(1) { [0]=> int(0) }
    var_dump((array)(null));      // array(0) { }
    
    var_dump((string)(1));        // string(1) "1"
    var_dump((string)(0));        // string(1) "0"
    var_dump((string)(null));     // string(0) ""

array_pop

/**
* array_pop() 函数删除数组中的最后一个元素
* 返回值 : 返回删除的值。如果数组是空的,或者非数组,将返回 NULL
*/

    $arr=['id'=>0,'sex'=>1,'name'=>2,3=>'age'];
    echo array_pop($arr);   // age

array_push

/*
* array_push(pam1,pam2,pam3) 函数向第一个参数的数组尾部添加一个或多个元素(入栈)
* pam1 必需。规定数组
* pam2 必需。规定要添加的值
* pam3 可选。规定要添加的值
* 返回值:返回新数组的元素个数
* 注释:即使数组中有字符串键名,您添加的元素也始终是数字键
* 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。
* 如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组
*/

    $arr=[1,2,3,4];
    echo array_push($arr,6,8);   // 5
    print_r($arr);                         // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )

array_unshift

/**
* array_unshift(pam1,pam2,pam3,pam4) 函数用于向数组插入新元素。新数组的值将被插入到数组的开头
* 被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。
* 提示:您可以插入一个或多个值
* 注释:数值键名将从 0 开始,以 1 递增。字符串键名将保持不变。
* pam1 必需。规定数组
* pam2 必需。规定要插入的值。
* pam3 可选。规定要插入的值。
* pam4 可选。规定要插入的值。
* 返回值 返回数组中新的元素数目
*/

    $arr=[1,2,3,4];
    echo array_unshift($arr,8,6,5);  // 7 
    print_r($arr);                   // Array ( [0] => 8 [1] => 6 [2] => 5 [3] => 1 [4] => 2 [5] => 3 [6] => 4 )

array_shift

/**
* array_shift(pam1); 函数删除数组中第一个元素,并返回被删除元素的值。
* 注释:如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增
* pam1 必需。规定数组
* 返回值 返回从数组中删除元素的值,如果数组为空则返回 NULL
*/

    $arr=[1,2,3,4];
    echo array_shift($arr);   // 1
    print_r($arr);            // Array ( [0] => 2 [1] => 3 [2] => 4 )

is_numeric

/**
* is_numeric(pam1) 函数用于检测变量是否为数字或数字字符串
* pam1 必须 要检测的变量
* 返回值 如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。
*/

     $var=23123123;
     var_dump(is_numeric($var));        //  true
     $var='3221313';
     var_dump(is_numeric($var));        //  true
     $var='sf12313';
     var_dump(is_numeric($var));        //  false
     $var=66.66;
     var_dump(is_numeric($var));        //  true

str_replace

str_ireplace

/**
* str_replace(find,replace,string,count) 函数以其他字符替换字符串中的一些字符(区分大小写)
* str_ireplace(find,replace,string,count) 函数替换字符串中的一些字符(不区分大小写)
* 该函数必须遵循下列规则:
* 如果搜索的字符串是数组,那么它将返回数组。
* 如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。
* 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
* 如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用
*
* find 必需。规定要查找的值。
* replace 必需。规定替换 find 中的值的值。
* string 必需。规定被搜索的字符串
* count 可选。对替换数进行计数的变量。
*
* 返回值 返回带有替换值的字符串或数组。
*/

    $arr = array("blue","red","green","yellow");
    print_r(str_replace("red","pink",$arr,$i)); // Array ( [0] => blue [1] => pink [2] => green [3] => yellow )
    echo '<hr>';
    echo "替换数:$i";    // 替换数:1

sprintf

/**
* sprintf(pam1,pam2,pam3,pam4) 函数把格式化的字符串写入一个变量中
* pam1 必需。规定字符串以及如何格式化其中的变量。可能的格式值:
* %% - 返回一个百分号 %
* %b - 二进制数
* %c - ASCII 值对应的字符
* %d - 包含正负号的十进制数(负数、0、正数)
* %e - 使用小写的科学计数法(例如 1.2e+2)
* %E - 使用大写的科学计数法(例如 1.2E+2)
* %u - 不包含正负号的十进制数(大于等于 0)
* %f - 浮点数(本地设置)
* %F - 浮点数(非本地设置)
* %g - 较短的 %e 和 %f
* %G - 较短的 %E 和 %f
* %o - 八进制数
* %s - 字符串
* %x - 十六进制数(小写字母)
* %X - 十六进制数(大写字母)
* 附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
* +(在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)
* ’ (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 “x” 作为填充))
* - (左调整变量值)
* [0-9] (规定变量值的最小宽度)
* .[0-9] (规定小数位数或最大字符串长度)
* pam2 必需。规定插到 format 字符串中第一个 % 符号处的参数
* pam3 可选。规定插到 format 字符串中第二个 % 符号处的参数。
* pam4 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。
*/

    $num1 = 123456789; 
    $num2 = -123456789; 
    $char = 50; // ASCII 字符 50 是 2 
      
    // 注释:格式值 "%%" 返回百分号 
    echo sprintf("%b",$num1)."<br>"; // 二进制数               // 111010110111100110100010101
    echo sprintf("%c",$char)."<br>"; // ASCII 字符            // 2
    echo sprintf("%d",$num1)."<br>"; // 带符号的十进制数        // 123456789
    echo sprintf("%d",$num2)."<br>"; // 带符号的十进制数        // -123456789
    echo sprintf("%e",$num1)."<br>"; // 科学计数法(小写)      // 1.234568e+8
    echo sprintf("%E",$num1)."<br>"; // 科学计数法(大写)      // 1.234568E+8
    echo sprintf("%u",$num1)."<br>"; // 不带符号的十进制数(正) // 123456789 
    echo sprintf("%u",$num2)."<br>"; // 不带符号的十进制数(负) // 18446744073586094827 
    echo sprintf("%f",$num1)."<br>"; // 浮点数(视本地设置)    // 123456789.000000 
    echo sprintf("%F",$num1)."<br>"; // 浮点数(不视本地设置)  // 123456789.000000
    echo sprintf("%g",$num1)."<br>"; // 短于 %e 和 %f        // 1.23457e+8
    echo sprintf("%G",$num1)."<br>"; // 短于 %E 和 %f        // 1.23457E+8
    echo sprintf("%o",$num1)."<br>"; // 八进制数             // 726746425
    echo sprintf("%s",$num1)."<br>"; // 字符串               // 123456789
    echo sprintf("%x",$num1)."<br>"; // 十六进制数(小写)     // 75bcd15 
    echo sprintf("%X",$num1)."<br>"; // 十六进制数(大写)     // 75BCD15 
    echo sprintf("%+d",$num1)."<br>"; // 符号说明符(正)      // +123456789
    echo sprintf("%+d",$num2)."<br>"; // 符号说明符(负)      // -123456789

http_build_query()

/**
* http_build_query() 使用给出的关联(或下标)数组生成一个 url-encoded 请求字符串
*/

    $data = array(
            'foo'=>'bar', 
            'baz'=>'boom', 
            'cow'=>'milk', 
            'php'=>'hypertext processor'
    ); 
    echo http_build_query($data);       // foo=bar&baz=boom&cow=milk&php=hypertext+processor

    $data = array('foo', 'bar', 'cow' => 'milk', 'php' =>'hypertext processor'); 
    echo http_build_query($data);       // 0=foo&1=bar&cow=milk&php=hypertext+processor

/**
* hash_hmac($algo , $data , $key bool ) — 使 用 HMAC 方法生成带有密钥的哈希值
* $algo 要使用的哈希算法名称,例如:“md5”,“sha256”,“haval160,4” 等。 如何获取受支持的算法清单,请参见 hash_hmac_algos() 函数
* data 要进行哈希运算的消息
* key 使用 HMAC 生成信息摘要时所使用的密钥。
* raw_output 设置为 TRUE 输出原始二进制数据, 设置为 FALSE 输出小写 16 进制字符串。 默认 false
* 返回值 如果 raw_output 设置为 TRUE, 则返回原始二进制数据表示的信息摘要, 否则返回 16 进制小写字符串格式表示的信息摘要。 如果 algo 参数指定的不是受支持的算法,返回 FALSE。
*/

    echo hash_hmac('md5', 'wpt', 'kangss');         //  f60fc1287a9ab3d2bc393ebb63dc39d6
    echo '<br>';
    echo hash_hmac('md5', 'wpt', 'kangss','true');  //  ��(z��Ҽ9>�c�9�
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值