1.sprintf
sprintf — 返回一个格式化的字符串
string sprintf ( string $format [, [mixed] $args [, [mixed] $...`]] )
返回格式化后的字符串
Example:
<?php
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
?>
返回结果为:
There are 5 monkeys in the tree
2.count
count — 计算数组中的单元数目,或对象中的属性个数
int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )
统计出数组里的所有元素的数量,或者对象里的东西。
Example:
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
var_dump(count(null));
var_dump(count(false));
?>
返回结果为:
int(3)
int(3)
int(0)
int(1)
3.json_encode
json_encode — 对变量进行 JSON 编码
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
返回字符串,包含了 value 值 JSON 形式的表示。
编码受传入的 options 参数影响.
Example:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
返回结果为:
{"a":1,"b":2,"c":3,"d":4,"e":5}
4.mt_rand
mt_rand — 生成更好的随机数
int mt_rand ( void )
int mt_rand ( int $min , int $max )
min:可选的,返回的最小值,默认为0
max:可选的,返回的最大值
返回min到max之间的随机整数
Example:
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
返回结果为:
1604716014
1478613278
6
5.uniqid
uniqid — 生成一个唯一ID
string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )
获取一个带前缀、基于当前时间微秒数的唯一ID。
Example:
<?php
printf("uniqid(): %s\r\n", uniqid());
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
6.substr
substr — 返回字符串的子串
string substr ( string $string , int $start [, int $length ] )
返回字符串 string 由 start 和 length 参数指定的子字符串。
Example:
<?php
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>
7.is_numeric
is_numeric — 检测变量是否为数字或数字字符串
bool is_numeric ( mixed $var )
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
<?php
function get_numeric($val) {
if (is_numeric($val)) {
return $val + 0;
}
return 0;
}
?>
Example:
<?php
get_numeric('3'); // int(3)
get_numeric('1.2'); // float(1.2)
get_numeric('3.0'); // float(3)
?>
8.time
time — 返回当前的 Unix 时间戳
int time ( void )
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
Example:
<?php
$nextWeek = time() + (7 * 24 * 60 * 60); // 7 days; 24 hours; 60 mins; 60 secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>
返回结果为:
Now: 2005-03-30
Next Week: 2005-04-06
Next Week: 2005-04-06
9.http_build_query
http_build_query — 生成 URL-encode 之后的请求字符串
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。
Example:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
返回结果为:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
10. curl_init
curl_init — 初始化 cURL 会话
resource curl_init ([ string $url = NULL ] )
初始化新的会话,返回 cURL 句柄
Example:
<?php
// 创建一个新cURL资源
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// 抓取URL并把它传递给浏览器
curl_exec($ch);
// 关闭cURL资源,并且释放系统资源
curl_close($ch);
?>
11.curl_setopt
curl_setopt — 设置 cURL 传输选项
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
12. curl_exec
curl_exec — 执行 cURL 会话
mixed curl_exec ( resource $ch )
执行给定的 cURL 会话。
这个函数应该在初始化一个 cURL 会话并且全部的选项都被设置后被调用。
参数ch是由curl_init()返回的句柄。
13.curl_close
curl_close — 关闭 cURL 会话
void curl_close ( resource $ch )
关闭 cURL 会话并且释放所有资源。cURL 句柄 ch 也会被删除。
参数ch由curl_init()返回的cURL句柄。
14.strlen
strlen — 获取字符串长度
int strlen ( string $string )
返回给定的字符串 string 的长度。
Example:
<?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>
15.function_exists
function_exists — 如果给定的函数已经被定义就返回 TRUE
bool function_exists ( string $function_name )
在已经定义的函数列表(包括系统自带的函数和用户自定义的函数)中查找 function_name。
function_name:函数名必须为一个字符串
Example:
<?php
if (function_exists('imap_open')) {
echo "IMAP functions are available.<br />\n";
} else {
echo "IMAP functions are not available.<br />\n";
}
?>
16.header
header — 发送原生 HTTP 头
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
header() 用于发送原生的 HTTP 头。
请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。
在通过include, require,或者其访问其他文件里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。 同样的问题也存在于单独的 PHP/HTML 文件中。
Example:
<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
17.explode
explode — 使用一个字符串分割另一个字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
Example:
<?php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
18.str_replace
str_replace — 子字符串替换
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
19.number_format
number_format — 以千位分隔符方式格式化一个数字
string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )
本函数可以接受1个、2个或者4个参数(注意:不能是3个):
如果只提供第一个参数,number的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号","
如果提供两个参数,number将保留小数点后的位数到你设定的值,其余同楼上
如果提供了四个参数,number将保留decimals个长度的小数部分, 小数点被替换为dec_point,千位分隔符替换为thousands_sep.
Example:
<?php
$number = 1234.56;
$english_format_number = number_format($number);
// 1,235
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>
20.mb_substr
mb_substr — 获取部分字符串
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。
Example:
<?php
mb_internal_encoding("UTF-8");
$string = "0123456789";
$mystring = mb_substr($string,5,1);
echo $mystring;
?>
21.json_last_error
json_last_error — 返回最后发生的错误
int json_last_error ( void )
如果有,返回 JSON 编码解码时最后发生的错误。
Example:
<?php
// 一个有效的 json 字符串
$json[] = '{"Organization": "PHP Documentation Team"}';
// 一个无效的 json 字符串会导致一个语法错误,在这个例子里我们使用 ' 代替了 " 作为引号
$json[] = "{'Organization': 'PHP Documentation Team'}";
foreach ($json as $string) {
echo 'Decoding: ' . $string;
json_decode($string);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
echo PHP_EOL;
}
?>
返回结果为:
Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON
22.random_bytes
random_bytes - 生成加密安全的伪随机字节
string random_bytes (int $length )
生成适合加密使用的任意长度的加密随机字节串,例如生成盐,键或初始化向量时。
length: 应以字节为单位返回的随机字符串的长度。
返回值:返回包含所请求的加密安全随机字节数的字符串。
Example:
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
返回值为:
string(10)“385e33f741”
23.mb_strlen
mb_strlen — 获取字符串的长度
mixed mb_strlen ( string $str [, string `$encoding` = mb_internal_encoding() ] )
获取一个string的长度
str: 要检查长度的字符串
encoding: encoding参数为字符编码,如果省略,则使用内部字符编码。
24. openssl_encrypt
openssl_encrypt — 加密数据
string openssl_encrypt ( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string &$tag = NULL [, string $aad = "" [, int $tag_length = 16 ]]]]] )
以指定的方式和 key 加密数据,返回原始或 base64 编码后的字符串。
25.base64_encode
base64_encode — 使用 MIME base64 对数据进行编码
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
Example:
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>
返回结果为:
VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
26.hash_hmac
hash_hmac — 使用 HMAC 方法生成带有密钥的哈希值
string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = FALSE ] )
Example:
<?php
echo hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret');
?>
返回结果为:
b8e7ae12510bdfb1812e463a7f086122cf37e4f7
27.hash_equals
hash_equals — 可防止时序攻击的字符串比较
bool hash_equals ( string $known_string , string $user_string )
比较两个字符串,无论它们是否相等,本函数的时间消耗是恒定的。
本函数可以用在需要防止时序攻击的字符串比较场景中.
Example:
<?php
$expected = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple', '$2a$07$usesomesillystringforsalt$');
var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>
返回结果为:
bool(true)
bool(false)
总结
工作中常用到的函数,摘录于php官方手册!以备不时之需。
网友评论