Heim > Artikel > Backend-Entwicklung > php müssen Sie die grundlegenden integrierten Funktionen kennen
1. Zitate
In der PHP-Sprache gibt es ein Referenzkonzept, das einem Zeiger entspricht. Zum Beispiel $a = &$b
<?php $a = 1; $b = &$a; $b = "2$b"; echo "$a,$b" ?>
2, Operatorpriorität
(neu) > (++, –) > (+, -) > > (und) > (xor) > (oder)
1. _GET und _POST erhalten Formulardaten
2 muss in Form eines Arrays in HTML definiert werden, z. B. 51cf54f851540a1bff0628fcf44bae58
(1) for、foreach循环输出数组元素 for:按整数顺序索引排列数组 foreach($array as $value) foreach($array as $key=>$value) (2) print_r() 查看数组结构,如果在输出前输出<pre class="brush:php;toolbar:false">,页面输出的结果会更整洁 (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时间戳
(1) date(format[,timestamp]) (2) mktime(hour,minute,second,month,day,year) 省略的参数将以本地日期和时间代替。 (3) getdate([timestamp])
(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[,®s]) 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]])
Das obige ist der detaillierte Inhalt vonphp müssen Sie die grundlegenden integrierten Funktionen kennen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!