PHP基本内置函数

版权声明:只要点赞,这篇文章就是你的。 https://blog.csdn.net/weixin_36691991/article/details/88927296

基本知识

1、引用 
php语言中有引用的概念,相当于指针。如$a = &$b

<?php
$a = 1; 
$b = &$a; 
$b = "2$b"; 
echo "$a,$b" 
?>

2、运算符优先级 
(new) > (++、–) > (*、/、%) > (+、-) > (&&)> (||) > (?:) > (==) > (and) > (xor) > (or)

WEB编程

1、_GET和_POST获取表单数据 
2、处理多选框时,要在html中定义成数组的形式,如<input name="hobby[]" type="checkbox" value="sport">

内置函数

数组内置函数

(1) for、foreach循环输出数组元素 
        for:按整数顺序索引排列数组
        foreach($array as $value)
        foreach($array as $key=>$value) 

(2) print_r() 查看数组结构,如果在输出前输出<pre>,页面输出的结果会更整洁 

(3) count() 计算数组元素的个数

(4) array_chunk($array,$size,$preserve) chunk:块,数组块,组块; 函数功能时对一个数组进行分割,$array,原数组;$size,分割的数组大小,大于0;$preserve,是否使用原索引。

(5) array_merge($array...) 数组合并,只接受array类型的参数,合并失败,返回null;如果数组索引时数字索引,会从‘0’开始编号索引;如果时字符串索引,则会出现覆盖的情况。

(6) current() 返回数组当前的元素

(7) prev() 返回当前元素的前一个元素,该方法会移动数组内部的指针,如果不存在前一个返回false

(8) next() 返回当前元素的后一个元素,该方法可以移动数组内部的指针,如果不存在则返回false

(9) end() 返回最后一个元素,该方法会移动数组内部的指针

(10) sort($array) 对数组进行排序 

(11) rsort($array) 对数组逆序排列

(12) asort($array) 对数组元素进行排序,保持数组的原索引关系不变 

(13) ksort($array) 对数组元素按索引名排序,保持原数组索引关系保持不变

(14) arsot()

(15) krsort()

(16) shuffle() 随机打乱数组,删除原来的索引

(17) array_reverse($array,$preserve) 将原数组按反序排序,返回排序后的数组,$preserve 是否保留索引,默认为false. 

(18) reset() 重置数组,将数组内部指针移动到第一个元素,并返回第一个元素。,如果数组为空,返回false 

(19) list(), 将数组元素赋值给变量,严格讲,和array一样,并不是函数,仅能用于数字索引的数组,且假定索引从0开始。 

(20) 栈操作,array_push(array,mixed value)将一个或多个元素压栈,返回数组中新的元素总数; array_pop(array),出栈,栈为空,返回null

(21) 队列操作,array_shift(array) 删除第一个元素并返回; array_unshift(array,val1,val2,...),将参数按照顺序加入队列中

(22) array_change_key_case(array,CASE_LOWER/CASE_UPPER) 将字符串索引的转换为大小写,对数字索引不起作用 

(23) 集合操作:交集,array_intersect(array,arr1...)求数组元素的交集,array_intersect_assoc()求数组键-值的交集;差集,array_diff(array,arr1...) 求数组的差集,array_diff_assoc(array,arr1...)求键-值的差集 intersect 交集;相交 diff 

(24) array_flip() 交换数组的键-值对,如果同一个值出现多次,则最后的索引会转换成对应的值

(25) array_fill(int start,int num,mixed val)

(26) array_count_values(array) 统计数组中元素的个数,返回一个数组,键时原数组的值,值为出现的次数 

(27) array_key_exists(key,array)检查索引是否存在于数组中 

(28) array_keys(array,[,searchvalue][,strict]) 获取所有的索引;array_values(),返回所有的元素,而不管是否重复 

(29) array_map(callbackfunc,arr1,arr2,...),数组的个数与回调函数的参数相同 

(30) array_filter(array,callbackfunc); 过滤数组中的元素,当回调函数返回true时,元素放到结果集中,键名保持不变。 

(31) in_array(var,array) var是否在array中 

(32) key(array) 返回当前元素的key

字符串内置函数

(1) 分割合并 explode(separator,str[,limit]) 使用字符串separator分割字符串str,limit用于限制返回数组中最多有几个元素;implode(bds,array),将数组合并成字符串,使用bds链接元素

(2) 比较和替换 strcmp(str1,str2) ;str_replace(search,replace,str),将str中search全部替换成replace,变形str_replace(searchArr,replaceArr,str),参数也可以是数组;substr_replace(string,replacement,start[,length]) 将string的start后的length长度(默认到结尾)的字符串替换为replacement,start和length可以为负数,表示从尾部开始,length为负数时表示倒数但是不包括倒数第length个。 

(3) 输出,print 严格的讲,print是语言结构,而不是函数,与echo的不同是print返回值是1,而echo没有返回值;echo可以打印多个string,而print只能打印一个string。 

(4) 格式化输出 sprintf(format,mixed args) ,类似于C 语言的格式化输出,类似的函数printf ,在这里假如使用$进行补齐,需要使用"'$"这样的写法 

(5) 获取子串 substr(string,start,length) 从string的start位置开始截取length长度的子字符串;strstr(string,needle,flag) 查找string中needle第一次出现的位置,并返回之后的所有字符(包括本字符),若flag为true,则返回之前的所有字符(不包括本字符);strchr() 同strstr;strrchr(string,needle,flag) string中needle最后一次出现的位置,返回之后的所有字符;strpos(string,needle[,start]) needle在string中第一次出现的位置。 

(6) 删除首位两端的多余字符,trim(),ltrim(),rtrim(),默认删除两端的空白字符,也可以自己指定。如trim(string,reStr) 

(7) 获取字符串长度 strlen(string) ,mb_strlen(string,encode) 

(8) 大小写转换 strtolower strtoupper

(9) 处理html标记的字符串 htmlentities(string) htmlspecialchars();html_entity_decode(string) 将html实体解析成字符串 

(10) 重复生成字符串 str_repeat(string,num);str_pad(string,length,pad,pad_type) pad_type的值是常量,STR_PAD_LEFT,STR_PAD_RIGHT,STR_PAD_BOTH。使用pad在string的pad_type端补齐成长度为length的字符串。 

(11) 散列值 md5() sha1() 

(12) str_split(string[,split_length]) 将string分割成长度为length的子字符串并返回一个数组;split(regex,string) 支持正则,根据regex分割字符串strin

文件操作内置函数

(1) opendir(path) 打开目录,返回一个资源类型的数值

(2) closedir(path) 关闭目录 

(3) readdir(dir) 读取文件夹,获取文件夹下的文件名而不是文件路径 

(4) scandir(string dir) 返回文件夹中的文件名数组,失败返回false,参数dir不是目录返回false 

(5) getcwd() 获取当前的工作目录 

(6) chdir() 改变当前的目录 

(7) fp=fopen(filename,mode) 打开文件,返回一个资源类型数据,失败返回false 

(8) fclose(fp) 关闭文件,参数是fopen的返回值 

(9) fgets(fp) 读取一行,参数需要是一个文件句柄 

(10) file(filename) 读取整个文件,返回一个数组,每一个元素为文件的一行 

(11) get_file_contents(filename) 将整个文件读到一个字符串中;fread(fp,length) 读取整个文件,可以安全读取二进制文件,如果单纯的想将一个文件的内容读取到字符串,应该使用性能更好的file_get_contens(); 

(12) readfile() 读入整个文件,并写入输出缓冲区,返回读取的字节数 

(13) fwrite(fp,content),返回写入的字节数,

(14) fputs(),与fwrite一样 

(15) file_put_contents(filename,data,mode),返回写入的字节数,data可以是一维数组,mode的取值FILE_USE_INCLUDE_PATH,FILE_APPEND,LOCK_EX

(16) fileowner(filename) 返回文件拥有者ID 

(17) filesize() 取得文件的大小 

(18) filetype() 取得文件类型,返回值file,dir,link,block,unknown

(19) is_dir(filename) is_file(filename) isreadable() iswriteable() 

(20) basename(filename[,suffix]) 取得路径中的文件名部分,若suffix存在则返回的文件名不包括suffix,可以用于去除扩展名;dirname() 取得路径中的目录名部分 

(21) file_exists(filename) 判断文件是否存在 

(22) mkdir(pathname,mode) 创建成功返回true,失败返回false 

(23) rmdir(pathname) 目录必须空目录 

(24) unlink(filename) 删除文件 

(25) copy(source,desc) 将source复制到desc,成功返回true 

(26) rename(oldname,newname) 

(27) fgetss(handle) 可以使用fopen打开url,此时fgetss可以过滤掉html标签 

(28) include() require() 

(29) filemtime() fileatime() filectime() 返回unix时间

时间日期内置函数

(1) date(format[,timestamp]) 

(2) mktime(hour,minute,second,month,day,year) 省略的参数将以本地日期和时间代替。 

(3) getdate([timestamp])

URL处理内置函数

(1) urlencode(str) 返回值字符串中所有的非字母和数字字符变成一个百分号(%) 和一个两位的十六进制数,空格被转换成+,-、_和.不做任何转换

(2) urldecode(str)

数学运算

(1) abs(num) 

(2) ceil(num) 

(3) floor(num) 

(4) sqrt(num) 

(5) round(num,precision) 四舍五入成指定precision位数 

(6) 进制之间的转换 bin 二进制,dec 十进制, oct 八进制,hex 十六进制,十进制转二进制 decbin(num) ,十进制转八进制 decoct(num) ,其余类似,不存在二进制、八进制、十六进制之间的转换,若要实现这些转换,可以使用base_convert(num,from,to) 如 base_convert("A4",16,2);定义十六进制时不需要加0x34 

(7) rand() mt_rand(min,max) 随机数,其中mt_rand()可以生成指定范围内的随机数,默认时0~RAND_MA

数据库操作

(1) 连接数据库 conn = mysql_connect(host,username,password) 

(2) 关闭链接 mysql_close(conn); 

(3) 执行语句 mysql_query(sql) 仅对show,select,describe等语句返回一个资源标示,对于其他SQL语句,mysql_query() 在执行成功时返回TRUE,出错时返回FALSE 

(4) 处理查询结果集 mysql_affected_rows() 取得前一次mysql操作所影响的记录行数,失败返回-1 mysql_fetch_row($result) result是执行mysql_query()之后返回的资源标识,该函数从查询结果集中返回一行数据。该函数返回值时一个数组,其中每一个元素对应一行结果记录的字段值。依次调用该函数可以返回结果集中的下一行,如果没有更多行,函数返回false。 mysql_fetch_array(result,type) 返回一行关联数组,或普通数组,或二者兼有,type:MYSQL_ASSOC 返回关联数组 MYSQL_NUM 普通数组 MYSQL_BOTH 二者兼有,通常使用该函数获取各字段的值 mysql_fetch_assoc(result) 与mysql_fetch_array()类似,返回的时关联数组 

(5) 获取字段信息 mysql_fetch_field(result[,field_offset]) 返回一个object对象,属性包括包括name,table,not_null,primary_key等 

(6) 选择数据库,mysql_select_db(databasename) 链接上数据库之后,使用该函数选择databasename数据库 

(7) 获取结果集行数 mysql_num_rows(result) ,仅对select语句有效;要取得insert,update,delete执行影响的结果行数,需要使用mysql_affected_rows()

正则表达式

(1) int ereg(pattern,string[,&regs]) pattern 正则表达式,待匹配string,匹配结果放在regs中,其中regs[0] 存放匹配到的整个字符串,其余的1,2...依次存放合乎规则的字符串。省略regs,则只单纯使用正则表达式作匹配,如果在string中找到pattern模式的匹配,那么该函数返回所匹配字符串的长度,如果没有传递入可选参数regs或者所匹配的字符串长度为0,则返回1,如果没有找到匹配或者出错,返回false。 

(2) int eregi(pattern,string,regs) 忽略大小写 

(3) split(pattern,string[,limit]) 利用正则表达式分割字符串 

(4) sql_regcase(string) 返回string相匹配的正则表达式,这个正则表达式不区分大小写 

(5) ereg_replace(pattern,replacement,string) 替换匹配字符串,eregi_replace(pattern,replacement,string) 不区分大小写

(6) 与perl兼容的正则表达式函数,perl正则表达式需要使用定界符(/),比如,"/<\/\w+>/"。函数:arraypreg_grep(pattern,input[,flag]) 类似ereg(),返回相匹配的元素,当flag=1时,返回数组中时不匹配元素;

(7) int preg_match(pattern,subject,matches[,flag]); 类似ereg(),捕获的匹配放到mathes中 

(8) int preg_match_all(pattern,subject,matches[,flag]); 全局搜索,找到第一个匹配之后,会继续搜索。搜索的结果存放在matches; 

(9) mixed preg_replace(pattern,replacement,subject[,limit]),其中公pattern,replacement可以是数组。

(10) array preg_split(pattern,subject[,limit[,flag]])

猜你喜欢

转载自blog.csdn.net/weixin_36691991/article/details/88927296