1.数据格式
1.1 Json
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
json_encode | mixed value [ , int option=0, int depth=512 ] |
string | 对变量进行 JSON 编码 |
json_decode | string json [ , bool assoc=false, depth=512, options=0 ] |
mixed | 对 JSON 格式的字符串进行解码 |
1.2 Xml
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
simplexml_load_string | string data [ , string class_name="SimpleXMLElement", int options=0, ... ] |
SimpleXMLElement / object / false | 把 XML 字符串载入对象中,class_name为返回的对象类型,options 为解析的选项(如 LIBXML_NOCDATA) |
2.文件目录
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
file_exists | string filename |
bool | 检查文件或目录是否存在 |
is_file | string filename |
bool | 判断给定文件名是否为一个正常的文件 |
is_dir | string filename |
bool | 判断给定文件名是否是一个目录 |
file | string filename [ , flag=0, resource context ] |
array | 把整个文件读入一个数组中(按行分割) |
readfile | string filename [ , use_include_path=false, resource context ] |
int | 读取文件并写入到输出缓冲 |
file_get_contents | string filename [ , use_include_path=false, resource context, int offset=-1, int maxlen ] |
string | 将整个文件 / url 读入一个字符串 |
file_put_contents | string filename, mixed data [ , int flags=0, resource context ] |
int | 将一个字符串写入文件,和依次调用 fopen(),fwrite() 以及 fclose() 功能一样 |
dir | string directory [ , resource context ] |
Directory类实例 | 以面向对象的方式访问目录,打开 dir 参数指定的目录 |
scandir | string directory [ , int sorting_order, resource context ] |
array | 列出指定路径中的文件和目录 |
mkdir | string pathname [ , int mode=0777, bool recursive=false, resource context ] |
bool | 尝试新建一个由 pathname 指定的目录 |
dirname | string path |
string | 返回路径中的目录部分 |
basename | string path [ , string suffix ] |
string | 返回路径中的文件名部分 |
is_uploaded_file | string filename |
bool | 判断文件是否是通过 HTTP POST 上传的,这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd 为了能使本函数正常工作,必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量,而在从客户端上传的文件名 $_FILES['userfile']['name'] 不能正常运作。 |
move_uploaded_file | string filename, string destination |
bool | 判断文件是否是否合法(即通过 HTTP POST 上传的),如果文件合法,则将其移动为由 destination 指定的文件 |
2.1 $_FILES 变量
$_FILES[‘file’][‘name’] | 被上传文件的名称 |
$_FILES[‘file’][‘type’] | 被上传文件的类型 |
$_FILES[‘file’][‘size’] |
被上传文件的大小(字节) |
$_FILES[‘file’][‘tmp_name’] |
存储在服务器的文件的临时副本的名称 |
$_FILES[‘file’][‘error’] |
由文件上传导致的错误代码:
|
3.字符串
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
trim | string str [ , string character="\t\n\r\0\x0B" ] |
string | 去除字符串首尾处的空白字符(或者其他字符) |
nl2br | string str [ , bool is_xhtml=true ] |
string | 使用 代替字符串 str 中的换行符 |
strip_tags | string str [ , string allowable_tags ] |
string | 从字符串中去除 HTML 和 PHP 标记 如: Test paragraph. Other text 转换为:Test paragraph. Other text |
htmlspecialchars | string str [ , int flag=ENT_COMPAT | ENT_HTML401 ... ] |
string | 将特殊字符转换为 HTML 实体 如:Test 转换为:<a href='test'>Test</a> |
htmlspecialchars_decode | string str [ , int flag=ENT_COMPAT | ENT_HTML401 ] |
string | 将特殊的 HTML 实体转换回普通字符 如: this -> " \n 转换为:this -> " |
addslashes | string str |
string | 使用反斜线引用字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线:单引号(')、双引号(")、反斜线(\)与 NUL( 如:O'reilly 转换为:O\'reilly |
strlen |
string str | int | 获取字符串长度 |
mb_strlen |
string str [ , string encoding=mb_internal_encoding() ] | mixed | 返回具有 encoding 编码的字符串 string 包含的字符数 需要确保 php.ini 加载了 extension=php_mbstring.dll |
mb_substr |
string str, int start [ , int legth=NULL, string encoding=mb_internal_encoding() ] | string | 返回字符串 str 由 start 和 length 参数指定的子字符串,安全的 substr() 操作 需要确保 php.ini 加载了 extension=php_mbstring.dll |
str_replace |
mixed search, mixed replace, mixed subject [ , int &count ] | string / array | 将 subject 中全部的 search 都被 replace 替换,count 如果被指定,它的值将被设置为替换发生的次数 |
strstr |
string haystack, mixed needle [ , before_needle = FALSE ] | string | 查找 needle 在 haystack 中的首次出现,并返回从该位置到字符串的剩余部分 |
utf8_encode |
string data | string | 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码 |
iconv |
string in_charset, string out_charset, string str | string | 将字符串 str 从 in_charset 转换编码到 out_charset |
sprintf |
string format [ , mixed args, mixed args... ] | string | 返回一个字符串生成格式化字符串 format,把百分号(%)符号替换成一个作为参数进行传递的变量 |
md5 |
string str [ , bool raw_output=false ] | string | 计算字符串的 MD5 散列值,如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回 |
sha1 |
string str [ , bool raw_output=false ] | string | 计算字符串的 sha1 散列值,如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字 |
3.1 字符串 <=> 数组
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
explode | string delimiter, string str [ , int limit ] |
array | 返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分;如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素;如果 limit 是 0,则会被当做 1。 |
implode |
[ string glue ] , array pieces | string | 用 glue(默认为空) 将一维数组的值连接为一个字符串 |
4.数组
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
count | mixed array_or_countable [ , int mode=COUNT_NORMAL ] |
int | 统计出数组里的所有元素的数量,或对象中的属性个数 |
in_array |
mixed needle, array haystack [ , bool strict=FALSE ] |
bool | 检查数组中是否存在某个值,如果没有设置 strict 则使用宽松的比较 |
array_column |
array input, mixed column_key [,mixed index_key=null] |
array | 返回 input 数组中键值为 column_key 的列, 如果指定了可选参数 index_key,那么 input 数组中的这一列的值将作为返回数组中对应值的键 |
array_search | mixed needle, array haystack [ , bool strict=FALSE ] |
mixed | 在数组中搜索给定的值,如果成功则返回首个相应的键名,如果没有设置 strict 则使用宽松的比较 |
array_key_exists | mixed key, array arr |
bool | 检查数组里是否有指定的键名或索引 |
array_values | array arr |
array | 返回数组中所有的值并给其建立数字索引 |
array_keys | array arr [ , mixed search_value=NULL, bool strict=FALSE ] |
array | 返回数组中部分的或所有的键名,如果指定了可选参数 search_value,则只返回该值的键名 |
array_filter |
array arr [ , callable callback, int flag=0 ] |
array | 用回调函数过滤数组中的单元:依次将 array 数组中的每个值传递到 callback 函数,如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变 |
array_map |
callable callback, array arr1 [ , arr arr2... ] |
array | 为数组的每个元素应用回调函数:返回为 array 每个元素应用 callback 函数之后的数组,callback 函数形参的数量和传给 array_map() 数组数量必须一样 |
array_merge |
array arr1 [ , array arr2... ] |
array | 返回将后一个数组的值与前一个合并后的最终数组,如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值;如果数组为数字键名,后面的值将不会覆盖原来的值,而是附加到后面 |
array_unqiue |
array arr [ , int sort_flags=SORT_STRING ] |
array | 移除数组中重复的值:注意键名保留不变,array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名,这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留 |
array_slice |
array arr, int offset [ , int length=NULL, bool preserve_keys=FALSE ] |
array | 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列 如果给出了 length 并且为正,则序列中将具有这么多的单元;如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方;如果省略,则序列将从 offset 开始一直到 array 的末端。 该函数默认会重新排序并重置数组的数字索引,你可以通过将 preserve_keys 设为 TRUE 来改变此行为 |
array_reduce |
array arr, callable callback [,mixed initial=NULL ] |
mixed | 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。 callback( mixed result, mixed item ):result 携带上次迭代里的值; 如果本次迭代是第一次,那么这个值是 initial;item 携带了本次迭代的值 $getResList = explode(PHP_EOL, file_get_contents('./logs')); $res = []; // 按ip分组排序 foreach($getResList as $k=>$v) { // 会转为一个二维数组(key为所有ip,value为所有该ip的全部记录) $res[$v->ip][] = $v; } // 转为一维数组 $res = array_reduce($res, function($result, $value){ return array_merge($result, array_values($value)); }, array()); |
range |
mixed start, mixed end [ , number step=1 ] |
array | 返回一个包含从 start 到 end 之间的元素的数组 |
list |
mixed var1 [ , mixed var2... ] |
array | 把数组中的值赋给一组变量,像 array() 一样,这不是真正的函数,而是语言结构, list() 可以在单次操作内就为一组变量赋值 php $info = array('coffee', 'brown', 'caffeine'); // 列出所有变量 list($drink, $color, $power) = $info; // 输出:coffee is brown and caffeine makes it special. echo nl2br("$drink is $color and $power makes it special.\n"); // 列出他们的其中一个 list($drink, , $power) = $info; // 输出:coffee has caffeine. echo nl2br("$drink has $power.\n"); // 或者让我们跳到仅第三个 list( , , $power) = $info; // 输出:I need caffeine! echo nl2br("I need $power!\n"); // list() 不能对字符串起作用 list($bar) = "abcde"; // NULL var_dump($bar); ?> |
extract |
array &arr [ , int flags=EXTR_OVERWRITE, string prefix=NULL ] |
int | 从数组中将变量导入到当前的符号表,会将 arr 键名当作变量名,值作为变量的值,必须为关联数组,除非用了 EXTR_PREFIX_ALL 或 EXTR_PREFIX_INVALID flags:对待非法/数字和冲突的键名的方法将根据取出标记 flags 参数决定:
prefix:仅在 flags 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要,如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。前缀和数组键名之间会自动加上一个下划线 |
current |
array &arr | mixed | 返回数组中的当前单元(每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元) php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport); // $mode = 'bike'; $mode = current($transport); // $mode = 'bike'; $mode = prev($transport); // $mode = 'foot'; $mode = end($transport); // $mode = 'plane'; $mode = current($transport); // $mode = 'plane'; $arr = array(); var_dump(current($arr)); // bool(false) $arr = array(array()); var_dump(current($arr)); // array(0) { } ?> |
next |
array &arr | mixed | 在返回数组的当前单元前将数组中的内部指针向前移动一位 |
prev |
array &arr | mixed | 在返回数组的当前单元前将数组中的内部指针向倒回一位 |
reset |
array &arr | mixed | 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值 |
end |
array &arr | mixed | 将 array 的内部指针移动到最后一个单元并返回其值 |
each |
array &arr | array / false | 返回 arr 数组中当前指针位置的键/值对并向前移动数组指针,键值对被返回为四个单元的数组,键名为0、1、key 和 value,单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。 在执行 each() 之后,数组指针将停留在数组中的下一个单元或者数组结尾时停留在最后一个单元,如果要再用 each 遍历数组,必须使用 reset() 重置指针位置 php $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese"); $bar = each($foo); print_r($bar); // 执行结果: Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) ?> php // each() 经常和 list() 结合使用来遍历数组,例如: $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); reset($fruit); while (list($key, $val) = each($fruit)) { echo "$key => $val\n"; } // 执行结果: a => apple b => banana c => cranberry ?> |
5.Variable handling
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
isset |
mixed var1 [ , mixed var2... ] | bool | 检测变量是否设置,并且不是 NULL,null 字符("\0")并不等同于 PHP 的 NULL 常量 如果传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止 |
empty | mixed var |
bool | 判断一个变量是否被认为是空的,当一个变量并不存在,或者它的值等于 FALSE,那么它会被认为不存在,如果变量不存在的话,empty() 并不会产生警告 |
strval | mixed var |
string | 返回变量 var 的 string 值,不能用于数组或对象 |
intval | mixed var [ , int base=10 ] |
int | 通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值,不能用于 object,否则会产生 E_NOTICE 错误并返回 1。 |
floatval | mixed var |
float | 返回变量 var 的 float 值,不能用于数组或对象 |
boolval | mixed var |
bool | 返回变量 var 的 boolean 值 |
is_array | mixed var |
bool | 检测变量是否是数组 |
is_bool | mixed var |
bool | 检测变量是否是布尔型 |
is_int | mixed var |
bool | 检测变量是否是整数 |
is_float | mixed var |
bool | 检测变量是否是浮点型 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric() |
is_numeric | mixed var |
bool | 检测变量是否为数字或数字字符串 |
is_string | mixed var |
bool | 检测变量是否是字符串 |
is_object | mixed var |
bool | 检测变量是否是一个对象 |
is_null | mixed var |
bool | 检测变量是否为 NULL |
is_callable | callable name[ , syntax_only=false, string &callable_name ] |
bool | 验证变量的内容能否作为函数调用 |
is_resource | mixed var |
bool | 检测变量是否为资源类型 |
is_scalar | mixed var |
bool | 检测变量是否是一个标量,标量变量是指 integer、float、string 或 bool的变量,而 array、object 和 resource 则不是标量 php function show_var($var) { if (is_scalar($var)) { echo $var; } else { var_dump($var); } } $pi = 3.1416; $proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin"); show_var($pi); // 打印:3.1416 show_var($proteins) // 打印: // array(3) { // [0]=> // string(10) "hemoglobin" // [1]=> // string(20) "cytochrome c oxidase" // [2]=> // string(10) "ferredoxin" // } ?> |
get_defined_vars | void |
array | 返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量 |
get_resource_type | resource handle |
string | 返回资源(resource)类型 php $c = mysql_connect(); echo get_resource_type($c)."\n"; // 打印:mysql link $fp = fopen("foo","w"); echo get_resource_type($fp)."\n"; // 打印:file $doc = new_xmldoc("1.0"); echo get_resource_type($doc->doc)."\n"; // 打印:domxml document ?> |
gettype | mixed var |
string | 获取变量的类型 |
settype | mixed &var, string type |
bool | 将变量 var 的类型设置成 type,type 的值为:
|
serialize | mixed value |
string | 序列化对象,产生一个可存储的值的表示 当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep(),这样就允许对象在被序列化之前做任何清除操作,类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数 |
unserialize | string str |
mixed | 反序列化对象,从已存储的表示中创建 PHP 的值 |
unset | mixed var1 [ , mixed var2... ] |
void | 释放给定的变量 |
6.Function handling
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
function_exists |
string function_name | bool | 在已经定义的函数列表(包括系统自带的函数和用户自定义的函数)中查找 function_name |
get_defined_functions |
[ bool exclude_disabled = FALSE ] | array | 返回所有已定义函数的数组 |
func_get_arg |
int arg_num | mixed | 从当前函数的参数列表中根据参数偏移量 arg_num(从0开始) 获取参数列表的某一项 |
func_get_args |
void | array | 返回一个包含函数参数列表的数组 |
func_num_args |
void | array | 返回当前函数参数列表的数量 |
call_user_func_array |
callable callback, array param_arr | mixed | 把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入 如: php function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\n"; } class foo { function bar($arg, $arg2) { echo __METHOD__, " got $arg and $arg2\n"; } } // Call the foobar() function with 2 arguments call_user_func_array("foobar", array("one", "two")); // Call the $foo->bar() method with 2 arguments $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four")); ?> |
call_user_func |
callable callback [ , mixed parameter1, mixed parameter2... ] | mixed | 把第一个参数作为回调函数(callback)调用,其余参数是回调函数的参数 |
register_shutdown_function |
callable callback [ , mixed parameter1, mixed parameter2... ] | void | 注册一个 callback ,它会在脚本执行完成或者 exit() 后被调用 可以多次调用 register_shutdown_function(),这些被注册的回调会按照他们注册时的顺序被依次调用,如果你在注册的方法内部调用 exit(),那么所有处理会被中止,并且其他注册的中止回调也不会再被调用 |
7.类/对象
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
class_exists |
string class_name [ , bool autoload=TRUE ] | bool | 检查指定的类是否已定义 |
method_exists |
mixed object, string method_name | bool | 检查类的方法 method_name 是否存在于指定的对象 object 中 |
interface_exists |
string interface_name [ , bool autoload=TRUE ] | bool | 检查接口是否已被定义 |
property_exists |
mixed class, string property | bool | 检查给出的属性 property 是否存在于指定的类中 |
get_called_class |
void | string | 获取静态方法调用的类名,如果不是在类中调用则返回 FALSE |
get_class |
[ object obj=NULL ] | string | 返回对象实例 object 所属类的名字,如果在类里,参数可以省略 |
get_class_vars |
string class_name | array | 返回由类的默认公有属性组成的关联数组 |
get_class_methods |
mixed class_name | array | 返回由类的方法名组成的数组 |
get_object_vars |
object obj | array | 返回由 obj 指定的对象中定义的属性组成的关联数组 |
get_parent_class |
[ mixed obj ] | string | 返回对象或类的父类名:如果 obj 是对象,则返回对象实例 obj 所属类的父类名,如果 obj 是字符串,则返回以此字符串为名的类的父类名 |
get_declared_classes |
void | array | 返回由当前脚本中已定义类的名字组成的数组 |
get_declared_interfaces |
void | array | 返回由当前脚本中已声明接口的名字组成的数组 |
is_subclass_of |
object obj, string class_name | bool | 如果对象 obj 所属类是类 class_name 的子类,则返回 TRUE |
8.时间
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
date |
string format [ , int timestamp ] | string | 返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间,默认值为 time() |
time |
void | int | 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 |
microtime |
[ bool get_as_float ] | mixed | 不带参数时,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分,当给出 get_as_float 参数并且其值等价于 TRUE 时,本函数将返回一个浮点数 php /** * Simple function to replicate PHP 5 behaviour */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); // Sleep for a while usleep(100); $time_end = microtime_float(); $time = $time_end - $time_start; echo "Did nothing in $time seconds\n"; ?> |
strtotime |
string time [ , int now=time() ] | int | 本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳 |
9.Math
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
ceil |
float value | float | 返回不小于 value 的下一个整数,value 如果有小数部分则进一位 |
floor |
float value | float | 返回不大于 value 的最接近的整数,舍去小数部分取整 |
round |
float val [ , int precision=0, int mode=PHP_ROUND_HALF_UP ] | float | 返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果,precision 也可以是负数或零(默认值) |
mt_rand |
[ int min, int max ] | int | 生成更好的随机数,用来替代 rand(),它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍 如想要 5 到 15(包括 5 和 15)之间的随机数:mt_rand(5, 15) |
dechex |
int number | string | 返回转换为十六进制数的十进制数 所能转换的最大数值为十进制的 PHP_INT_MAX * 2 + 1 (或 -1):在 32 位平台上是十进制的 4294967295,其 dechex() 的结果为 ffffffff |
10.URL
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
url_encode |
string str | string | 编码 URL 字符串 |
url_decode |
string str | string | 解码已编码的 URL 字符串 |
pares_url |
string url [,int component=-1 ] | mixed | 解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分 php $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); // 输出结果: Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) |
11.会话
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
session_start |
[ array options=[] ] | bool | 启动新会话或者重用现有会话,开启后使用 $_SESSION 设置和读取 |
session_destroy |
void | bool | 销毁一个会话中的全部数据, 如果需要再次使用会话变量, 必须重新调用 session_start() 函数 |
12.网络
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
setcookie |
string name [ , string value="", int expire=0, string path="", string domain="", bool secure=FALSE, bool httponly=FALSE ] | bool | 向客户端发送一个 HTTP cookie, 和其他 HTTP 头一样,必须在脚本产生任意输出之前发送 Cookie(由于协议的限制),请在产生任何输出之前(包括 和 或者空格)调用本函数一旦设置 Cookie 后,下次打开页面时可以使用 $_COOKIE 读取。 Cookie 值同样也存在于 $_REQUEST 如:setcookie("TestCookie", "value", time()-3600, "/", "example.com"); |
header |
string str [ , bool replace=true, int http_response_code ] | void | 发送原生 HTTP 头,必须在任何实际输出之前调用 如:header("HTTP/1.0 404 Not Found"); header("Location: http://www.example.com/"); |
13.正则
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
preg_match |
string pattern, string subject [ , array &matches, int flags=0, int offset=0 ] | int | 执行匹配正则表达式,返回 pattern 的匹配次数,它的值将是0次(不匹配)或1次 如果提供了参数matches,它将被填充为搜索结果,$matches[0] 将包含完整模式匹配到的文本,$matches[1] 将包含第一个捕获子组匹配到的文本,以此类推 php //模式分隔符后的"i"标记这是一个大小写不敏感的搜索 if (preg_match("/php/i", "PHP is the web scripting language of choice.")) { echo "A match was found."; } else { echo "A match was not found."; } // 执行结果:A match was found. ?> |
preg_match_all |
string pattern, string subject [ , array &matches, int flags=PREG_PATTERN_ORDER, int offset=0 ] | int | 搜索 subject 中所有匹配 pattern 给定正则表达式的匹配结果并且将它们以 flag 指定顺序输出到 matches 中 |
preg_replace |
mixed pattern, mixed replacement, mixed subject [ , int limit=-1, int &count ] | mixed | 搜索 subject 中匹配 pattern 的部分,以 replacement 进行替换 subject:要进行搜索和替换的字符串或字符串数组,如果 subject 是一个数组,搜索和替换回在 subject 的每一个元素上进行, 并且返回值也会是一个数组 limit:每个模式在每个subject上进行替换的最大次数。默认是 -1(无限) count:如果指定,将会被填充为完成的替换次数 返回值:如果 subject 是一个数组, 该函数返回一个数组,其他情况下返回一个字符串,如果匹配被查找到,替换后的 subject 被返回,其他情况下返回没有改变的 subject,如果发生错误返回 NULL php $string = 'April 2, 2003'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = 'May ${2}6, $3'; echo preg_replace($pattern, $replacement, $string); // 执行结果:May 26, 2003 ?> |
preg_replace_callback |
mixed pattern, callable callback, mixed subject [ , int limit=-1, int &count ] | mixed | 执行一个正则表达式搜索并且使用一个回调进行替换,该函数除了可以指定一个 callback 替代 replacement 进行替换字符串的计算,其他方面等同于 preg_replace() callback:在每次需要替换时调用,调用时函数得到的参数是从subject 中匹配到的结果。回调函数返回真正参与替换的字符串。这是该回调函数的签名:string handler ( array $matches ) Example php // 将文本中的年份增加一年. $text = "April fools day is 04/01/2002\n"; $text.= "Last christmas was 12/24/2001\n"; // 回调函数 function next_year($matches) { // 通常: $matches[0]是完成的匹配 // $matches[1]是第一个捕获子组的匹配 // 以此类推 return $matches[1].($matches[2]+1); } echo preg_replace_callback( "|(\d{2}/\d{2}/)(\d{4})|", "next_year", $text); // 执行结果: April fools day is 04/01/2003 Last christmas was 12/24/2002 ?> |
14.Output Control
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
ob_start |
[ callable output_callback, int chunk_size, bool erase ] | bool | 此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中 内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中,想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数,另外使用 ob_end_clean() 函数会静默丢弃掉缓冲区的内容 输出缓冲区是可堆叠的,这即意谓着,当有一个 ob_start() 是活跃的时,你可以调用另一个 ob_start() ,只要确保又正确调用了 ob_end_flush() 恰当的次数即可,如果有多重输出回调函数是活跃的,输出内容会一直按嵌套的顺序依次通过它们而被过滤 |
ob_get_contents |
void | string | 函数返回输出缓冲区的内容,如果输出缓冲区无效将返回 FALSE |
ob_end_clean |
void | bool | 清空最顶层输出缓冲区的内容并关闭这个缓冲区 |
ob_end_flush |
void | bool | 冲刷出最顶层缓冲区的内容(如果里边有内容的话),并关闭缓冲区 |
15.图像
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
imagecreatetruecolor |
int width, int height | resource | 新建一个真彩色图像:返回一个图像标识符,代表了一幅大小为 width 和 height 的黑色图像 |
imgcreatefrompng/gif/jpeg |
string filename | resourece | 由文件或 URL 创建一个新图象:返回一图像标识符,代表了从给定的文件名取得的图像 |
imagecolorallocate |
resource img, int red, int green, int blue | int | 为一幅图像分配颜色:返回一个标识符,代表了由给定的 RGB 成分组成的颜色 |
imagefill |
resource img, int x, int y, int color | bool | 区域填充:在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充) |
imageline |
resource img, int x1, int y1, int x2, int y2, int color | bool | 画一条线段:用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段 |
imagestring |
resource img, int font, int x, int y, string str, int color | bool | 水平地画一行字符串:用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0),如果 font 是 1、2、3、4 或 5,则使用内置字体 |
imagepng |
resource img [ , string filename ] | bool | 以 PNG 格式将图像输出到浏览器或文件 |
imagegif |
resource img [ , string filename ] | bool | 以 GIF 格式将图像输出到浏览器或文件 图像格式为 GIF87a,如果用了 imagecolortransparent() 使图像为透明,则其格式为 GIF89a |
imagejpeg |
resource img [ , string filename, int quality ] | bool | 以 JPEG 格式将图像输出到浏览器或文件 filename:文件保存的路径,如果未设置或为 NULL,将会直接输出原始图象流 quality:范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大),默认为 IJG 默认的质量值(大约 75) |
imagecopyresampled |
resource dst_img, resource src_img, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h | bool | 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此减小了图像的大小而仍然保持了极大的清晰度 如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸,坐标指的是左上角,本函数可用来在同一幅图内部拷贝(如果 dst_image 和 src_image 相同的话)区域,但如果区域交迭的话则结果不可预知 |
getimagesize |
string filename [ , array &imageinfo ] | array | 取得图像大小:返回图像的尺寸以及文件类型,返回一个具有四个单元的数组:
php list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); echo "$attr>"; ?> |
imagedestroy |
resource img | bool | 释放与 image 关联的内存,image 是由图像创建函数返回的图像标识符,例如 imagecreatetruecolor() |
16.Other
函数名 | 参数 | 返回值 | 作用 |
---|---|---|---|
define |
string name, mixed value [ , bool case_insensitive=FALSE ] | bool | 定义一个常量 |
defined |
string name | bool | 检查该名称的常量是否已定义 |
uniqid |
[ string prefix="", bool more_entropy=FALSE ] | string | 获取一个带前缀、基于当前时间微秒数的唯一ID,如:sha1(uniqid(rand(),true)); 本函数并不会生成安全加密的值,不应用于加密用途。若需要安全加密的值,考虑使用 openssl_random_pseudo_bytes() |
Closure::bind (closure,newthis[,newcope]): 复制一个闭包,绑定指定的$this对象和类作用域
declare
trait