PHP 内置函数大全

基本知识

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分割字符串string

文件操作内置函数

      (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时间戳

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_MAX

数据库操作

      (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+>/"。函数:array preg_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]])
(0)

相关推荐