数学函数
- max() 参数为一个数组或者若干个数字,返回其中最大值。
例如:
echo max(1, 3, 5, 6, 7);
echo max(array(2, 4, 5));
min()同理。
- mt_rand()和rand() 如果有可选参数min和max,返回俩参数之内(包括min和max)随机整数,如果没有,返回0-getrandmax()之间的伪随机整数,getrandmax()不同平台下不同。
区分
js中的random() 方法可返回介于 0 ~ 1 之间的一个 随机数 。
语法
Math.random()
字符串函数
- chop()是rtrim()别名,删除字符串右边的空格或其他预定义字符。
- str_split(string,[length]) 函数把字符串分割到数组中,length 可选。规定每个数组元素的长度。默认是 1。
- str_pad(string,length,[pad_string],[pad_type])函数把字符串填充为新的长度.
pad_string 可选。规定供填充使用的字符串。默认是空白。
pad_type 可选。规定填充字符串的哪边。
可能的值:
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认。 - wordwrap(string,width,break,cut)函数按照指定长度对字符串进行折行处理.
string 必需。规定要进行折行的字符串。
width 可选。规定最大行宽度。默认是 75。
break 可选。规定作为分隔符使用的字符(字串断开字符)。默认是 “\n”。
cut 可选。规定是否对大于指定宽度的单词进行折行:
FALSE - 默认。No-wrap
TRUE - 折行 - parse_str(string,array)函数把查询字符串解析到变量中。
注释:如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量。 - number_format(number,decimals,decimalpoint,separator)函数通过千位分组来格式化数字。
注释:该函数支持一个、两个或四个参数(不是三个)。
number 必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。
decimals 可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。
decimalpoint 可选。规定用作小数点的字符串。
separator 可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 “xxx” 仅输出 “x”。
注释:如果设置了该参数,那么所有其他参数都是必需的。 - 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 )
- substr_count(string,substring,start,length) 函数计算子串在字符串中出现的次数。
注释:子串是区分大小写的。 - substr_replace(string,replacement,start,length)把字符串的一部分替换为另一个字符串。
start 必需。规定在字符串的何处开始替换。
length 可选。规定要替换多少个字符。默认是与字符串长度相同。
正数 - 被替换的字符串长度
负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。
0 - 插入而非替换 - 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标签关联
- htmlspecialchars()把预定义的字符转换为 HTML 实体。
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
//源码输出:This is some <b>bold</b> text.
//浏览器输出:This is some <b>bold</b> text.
意思是把html标签原样输出。
htmlspecialchars_decode() 函数把HTML实体转为字符。
- quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠。
提示:该函数可用于转义拥有特殊意义的字符,比如 SQL 中的 ( )、[ ] 以及 * 。
字符串比较
- strcasecmp(): 不区分大小写比较两字符串
- strcmp(): 区分大小写比较两字符串
时间日期函数
- date_default_timezone_get()
(PHP 5 >= 5.1.0, PHP 7)
date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区
数组函数
- 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()
- range(low,high,step) 函数创建一个包含指定范围的元素的数组。
注释:如果 high 比 low 小,则返回反序的数组 - 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)
}*/
?>
- 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 变量。
- reset() 函数将内部指针指向数组中的第一个元素,并输出。
注意: 当使用each() next() prev() current() end() 这些操作数组指针的函数时,如果希望在脚本中多次使用一个数组,需要使用reset()函数将指针指向数组第一个元素。
文件操作函数
- 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');