php部分函数解释

参考:180多个PHP常用函数总结

数学函数

  1. max() 参数为一个数组或者若干个数字,返回其中最大值。
    例如:
echo max(1, 3, 5, 6, 7)echo max(array(2, 4, 5));

min()同理。

  1. mt_rand()和rand() 如果有可选参数min和max,返回俩参数之内(包括min和max)随机整数,如果没有,返回0-getrandmax()之间的伪随机整数,getrandmax()不同平台下不同。

    区分
    js中的random() 方法可返回介于 0 ~ 1 之间的一个 随机数
    语法
    Math.random()

字符串函数

  1. chop()是rtrim()别名,删除字符串右边的空格或其他预定义字符。
  2. str_split(string,[length]) 函数把字符串分割到数组中,length 可选。规定每个数组元素的长度。默认是 1。
  3. str_pad(string,length,[pad_string],[pad_type])函数把字符串填充为新的长度.
    pad_string 可选。规定供填充使用的字符串。默认是空白。
    pad_type 可选。规定填充字符串的哪边。
    可能的值:
    STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
    STR_PAD_LEFT - 填充字符串的左侧。
    STR_PAD_RIGHT - 填充字符串的右侧。默认。
  4. wordwrap(string,width,break,cut)函数按照指定长度对字符串进行折行处理.
    string 必需。规定要进行折行的字符串。
    width 可选。规定最大行宽度。默认是 75。
    break 可选。规定作为分隔符使用的字符(字串断开字符)。默认是 “\n”。
    cut 可选。规定是否对大于指定宽度的单词进行折行:
    FALSE - 默认。No-wrap
    TRUE - 折行
  5. parse_str(string,array)函数把查询字符串解析到变量中。
    注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量。
  6. number_format(number,decimals,decimalpoint,separator)函数通过千位分组来格式化数字。
    注释:该函数支持一个、两个或四个参数(不是三个)。
    number 必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。
    decimals 可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。
    decimalpoint 可选。规定用作小数点的字符串。
    separator 可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 “xxx” 仅输出 “x”。
    注释:如果设置了该参数,那么所有其他参数都是必需的。
  7. explode(separator,string,limit)把字符串打散为数组。
    limit 可选。规定所返回的数组元素的数目。
    可能的值:
    大于 0 - 返回包含最多 limit 个元素的数组
    小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
    0 - 返回包含一个元素的数组
<?php
$str = 'one,two,three,four';

// 零 limit
print_r(explode(',',$str,0));

// 正的 limit
print_r(explode(',',$str,2));

// 负的 limit
print_r(explode(',',$str,-1));
?>
//Array ( [0] => one,two,three,four ) 
//Array ( [0] => one [1] => two,three,four ) 
//Array ( [0] => one [1] => two [2] => three ) 
  1. substr_count(string,substring,start,length) 函数计算子串在字符串中出现的次数。
    注释:子串是区分大小写的。
  2. substr_replace(string,replacement,start,length)把字符串的一部分替换为另一个字符串。
    start 必需。规定在字符串的何处开始替换。
    length 可选。规定要替换多少个字符。默认是与字符串长度相同。
    正数 - 被替换的字符串长度
    负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。
    0 - 插入而非替换
  3. str_replace(find,replace,string,count)以其他字符替换字符串中的一些字符(区分大小写)。
    如果搜索的字符串string是数组,那么它将返回数组。
    如果搜索的字符串string是数组,那么它将对数组中的每个元素进行查找和替换。
var_dump(str_replace('a','b',['a','a','a']));
//array(3) { [0]=> string(1) "b" [1]=> string(1) "b" [2]=> string(1) "b" } 

如果查找find是数组,而替换replace是字符串,那么替代字符串replace将对所有查找到的值起作用。

$find=['a','b','c'];
$replace='666';
var_dump(str_replace($find,$replace,['a','c','b','d']));
//array(4) { [0]=> string(3) "666" [1]=> string(3) "666" [2]=> string(3) "666" [3]=> string(1) "d" } 

如果find replace都为数组,并且replace的值的个数少于 find 的个数,那么多余元素将用空字符串进行替换

$find = ['hello', 'world'];
$replace = ['nice'];
var_dump(str_replace($find, $replace, ['hello world', 'hello shanghai']));
//array(2) { [0]=> string(5) "nice " [1]=> string(13) "nice shanghai" } 

番外: 由于 str_replace() 的替换时从左到右依次进行的,进行多重替换的时候可能会替换掉之前插入的值。

// 由于从左到右依次替换,最终 E 被 F 替换
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...

// 由于上面提到的原因
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
// 输出: apearpearle pear
html标签关联
  1. htmlspecialchars()把预定义的字符转换为 HTML 实体。
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
//源码输出:This is some &lt;b&gt;bold&lt;/b&gt; text.
//浏览器输出:This is some <b>bold</b> text.

意思是把html标签原样输出。
htmlspecialchars_decode() 函数把HTML实体转为字符。

  1. quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠。
    提示:该函数可用于转义拥有特殊意义的字符,比如 SQL 中的 ( )、[ ] 以及 * 。
字符串比较
  1. strcasecmp(): 不区分大小写比较两字符串
  2. strcmp(): 区分大小写比较两字符串

时间日期函数

  1. date_default_timezone_get()
    (PHP 5 >= 5.1.0, PHP 7)
    date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区

数组函数

  1. sort() 函数对索引数组进行升序排序。rsort()降序排列。
    注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除而asort()排序后会保留原有键名不变
    注意:此函数区分字母大小写的。所有的大写字母都在小写字母的前面。所以‘A’小于‘Z’,而‘Z’小于‘a’。
$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits);
var_dump($fruits);
/*array(4) {
  [0]=>
  string(7) "Orange1"
  [1]=>
  string(7) "Orange3"
  [2]=>
  string(7) "orange2"
  [3]=>
  string(8) "orange20"
}*/

用不区分大小写自然排序的 sort() 例子

使用不区分大小写自然排序的 sort() 例子

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}
/*array(4) {
  [0]=>
  string(7) "Orange1"
  [1]=>
  string(7) "orange2"
  [2]=>
  string(7) "Orange3"
  [3]=>
  string(8) "orange20"
}*/
?>
  • usort()使用用户自定义的比较函数对数组中的值进行排序。
    注意: 此函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。而array中的子元素是关联数组时,排序后不会删除原有的键名
数组排序总结:

一维数组:

  • 索引数组排序: sort()升序 rsort()降序
  • 关联数组排序:
    asort()升序 arsort()降序;
    (而不是键值)排序: ksort()升序 krsort()降序;

多维数组

  • array_multisort()
    自定义函数:
  • 索引数组排序:
    usort()
$arr = ['A'=>['name'=>'a', 'age'=>10],'B'=> ['name'=>'b', 'age'=>18], 'C'=>['name'=>'c', 'age'=>16]];
function compare($a, $b)
{
    if ($a['name'] < $b['name']) {
        return -1;
    } elseif ($a['name'] == $b['name']) {
        return 0;
    } else {
        return 1;
    }
}
usort($arr,'compare');
var_dump($arr);
/*输出:
array(3) {
  [0]=>
  array(2) {
    ["name"]=> string(1) "a"
    ["age"]=> int(10)
  }
  [1]=>
  array(2) {
    ["name"]=>string(1) "b"
    ["age"]=> int(18)
  }
  [2]=>
  array(2) {
    ["name"]=> string(1) "c"
    ["age"]=> int(16)
  }
}*/
  • 关联数组排序:
    uasort()
    (而不是键值)排序:uksort()
  1. range(low,high,step) 函数创建一个包含指定范围的元素的数组。
    注释:如果 high 比 low 小,则返回反序的数组
  2. each() 函数返回当前元素的键名和键值,并将内部指针向前移动
    返回的数组中包括的四个元素:键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
    如果内部指针越过了数组范围,本函数将返回 FALSE。
<?php
$people = array("Bill", "Steve", "Mark", "David");
print_r (each($people));

/*array(4) {
  [1]=>string(4) "Bill"
  ["value"]=>string(4) "Bill"
  [0]=>int(0)
  ["key"]=>int(0)
}*/
?>
  1. list(var1,var2…) 函数用数组中的元素为一组变量赋值。
    注释: 该函数只用于数字索引的数组,且假定数字索引从 0 开始。
<?php
$my_array = array("Dog","Cat","Horse");

list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
?>
//I have several animals, a Dog, a Cat and a Horse.

还可以这样:

使用第一个和第三个变量:
<?php
$my_array = array("Dog","Cat","Horse");

list($a, , $c) = $my_array;
echo "我在这里只用了 $a$c 变量。";
?>
//我在这里只用了 Dog 和 Horse 变量。
  1. reset() 函数将内部指针指向数组中的第一个元素,并输出。
    注意: 当使用each() next() prev() current() end() 这些操作数组指针的函数时,如果希望在脚本中多次使用一个数组,需要使用reset()函数将指针指向数组第一个元素。

文件操作函数

  1. unlink()函数,在它之前如果有fopen()。。。。算了,直接贴代码。。。
$fh=fopen('./a.txt','ab');
fwrite($fh,'111'."\n");
unlink('./a.txt');

报错:Warning: unlink(./a.txt): Resource temporarily unavailable in D:\phpStudy\PHPTutorial\WWW\01.php on line 951。原因是fopen()打开的文件资源未关闭。
关闭该资源,则可以正常删除该文件。

$fh=fopen('./a.txt','ab');
fwrite($fh,'111'."\n");
fclose($fh);
unlink('./a.txt');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值