PHP常用基础函数汇总(PHP笔面试复习必备)
string函数库
- int strlen(string $str):返回给定字符串的长度
- int strpos(string $str1,string $str2):计算$str2在$str1中首次出现的位置
- string strstr(string $str1,string $str2):返回$str1中第一个$str2开始到最后的字符串(包含$str2),别名strchr()
- string stristr:strstr()函数忽略大小写的版本
- int strrpos(string $str1,string $str2):计算$str2在$str1中最后一次出现的位置
- string strrchr(string $str1,string $str2):返回$str1中最后一个$str2开始到最后的字符串(包含$str2)
- array explode(string $delimiter,string $str):将$str以$delimiter为拆分标准拆分成多个字符串,并以一个数组返回
- string implode(string $glue,array $arr):将$arr中的每个元素用$glue连接起来
- string substr(string $str,int $start,[int $len]):返回$str中$start位置开始的长度为$len的字符串,如果$len没有,则返回余下所有
- string/array str_replace(string/array $search,string/array $replace,string/array $subject[,int &$count]):返回值类型取决于$subject类型,用$replace替换$subject中的$search
- string strtoupper(string $str):将$str中的字母转换成大写
- string strtolower(string $str):将$str中的字母转化成小写
- string ucwords(string $str):将$str中的单词首字母大写
- string ucfirst(string $str):将$str中的首字母大写
- string strrev(string $str):将$str反转
- string md5(string $str):计算$str的md5散列值,即加密
- string sha1(string $str):计算$str的sha1散列值,即加密
- string strip_tags(string $str):去除$str中html和php标签,很有用
- string rtrim(string $str[,string $character_mask=' x0B']):删除$str末端的空白字符,通过第二个参数还可以指定删除某些字符
- string trim(string $str[,string $character_mask]=' x0B'):删除$str首尾端的空白字符,通过第二个参数还可以指定删除某些字符
日期时间函数库
- int time():返回当前的Unix时间戳(格林威治时间1970-01-01 00:00:00到当前时间的秒数)
- string date(string $format[,int $timestamp=time()]):按照$format格式将时间戳转化成字符串时间,通常格式是$format='Y-m-d H:i:s'
- int strtotime(string $str[,int now=time()]):将任意英文格式的字符串时间转变成时间戳
- string/float microtime([bool $get_as_float]):返回当前时间的Unix时间戳和微秒数,没有$get_as_float参数,则返回string '时间戳部分 微秒数部分',可以通过explode()函数分开进行计算时间戳部分和微秒数部分;如果有$get_as_float参数且为true,则返回float 时间戳.微秒数 ,则直接相减即可
array函数库
- int count(array/object $var[,int $mode=COUNT_NORMAL]):获取数组的长度或对象的属性个数,如果$mode为COUNT_RECURSIVE或1,则可以递归计算多维数组的元素个数
- int/string array_search(mixed $needle,array $haystack[,bool $strict=false]):返回值类型取决于查找的数组$haystack是索引数组还是关联数组。如果$strict为true,则不仅判断值,还判断类型,对于对象,必须是同一个实例!
- bool array_key_exits(int/string $needle,array $haystack):判断$needle是不是$haystack的键
- array array_merge(array $arr1,array $arr2,...):将$arr2追加到$arr1后面形成一个新的数组。如果$arr2中有与$arr1中相同的字符串键,则$arr2中的该键对应的值会覆盖$arr1中的该字符串键;如果$arr2中有与$arr1中相同的整型键,则$arr2中的该键对应的值不会覆盖$arr1中该整形键,而是继续按照整型键顺序(比如说,$arr1中有两个整型键0、1,$arr2中也有两个整型键0、1,那么merge之后,$arr2中原来的两个整型键就会变成2、3;再比如说,$arr1中没有整型键,$arr2中有两个整型键1、3,那么merge之后,$arr2中原来两个整型键就会变成0、1)追加在后面
- int array_unshift(array &$arr,mixed $val1[,mixed $val2,...]):在$arr头中依次插入$valn、...、$val2、$val1,并重新排序整型键,字符串键不变,返回$arr新长度
- int array_push(array &$arr,mixed $val1[,mixed $val2,...]):在$arr尾中依次插入$val1、$val2、...、$valn,返回$arr新长度。其实如果是在尾中插入元素,则可以直接$arr[]=$val
- mixed array_pop(array &$arr):将$arr最后一个元素弹出,并返回弹出的那个元素值
- mixed array_push(array &$arr):将$arr最前一个元素弹出,并返回弹出的那个元素值。且重新排序整型键,字符串键不变
- array array_reverse(array $arr[,bool $preserve_keys=false]):将$arr反转,默认整型键重新排序,字符串键不变,如果$preserve_keys=true,则整型键和字符串键都不变,并返回
- array array_unique(array $arr[,boo $sort_flags=SORT_STRING]):去除$arr中重复的值。键名保留问题,两个重复值有则不同键名,到底保留那个键名呢?并不是简单的保留在前的,而是将 $arr中所有值按照字符串排序,然后取靠前的那个值的键!强调一遍,值都先转成string类型的,再排序并比较是否相同,也就是所int 4与string '4'是同一个值!
- void unset(mixed $val[,mixed $val...]):释放给定的变量,注意unset只能释放数组元素,而不能释放一个数组
- mixed end(array &$arr):将数组内部指针移动到最后一个元素上,并返回最后一个元素值
- bool sort(array &$arr[,$sort_flags=SORT_REGULAR]):将数组排序(低到高),成功返回true,失败返回false。排序之后数组统一用整型键排序
- bool asort(array &$arr[,$sort_flags=SORT_REGULAR]):将数组排序(低到高),成功返回true,失败返回false。排序之后数组键不变
- bool arsort(array &$arr[,$sort_flags=SORT_REGULAR]):同asort,只不过是高到低
- bool ksort(array &$arr[,$sort_flags=SORT_REGULAR]):按照键排序(低到高),排序之后数组键不变
- bool ksort(array &$arr[,$sort_flags=SORT_REGULAR]):按照键排序(高到低),排序之后数组键不变
- string serialize(mixed $val):将$val序列化,$val不能是资源类型的
- mixed unserialize(string $val):将$val反序列化
数学函数库
- int/float abs(int/float $num):返回$num的绝对值
- float round(float $num[,int $precision=0] [,int $mode]):对$num进行四舍五入,保留小数点后$precision位
- float ceil(float $num):向上取整
- float floor(float $num):向下取整
- int/float/string max(int/float/string $val1,int/float/string $val2[,...]):返回最大值。如果只有一个参数,且为array,则返回该数组中元素值最大的那个元素。min()找出最小值
- float sqrt(float $num):求$num平方根,$num为负返回NAN
- int rand(int $min,int $max)/int rand(void):返回$min到$max之间的随机整数/返回0到getrandmax()(在win上,为32767)之间的随机整数。mt_rand()函数同理,效果更好
MySQL扩展函数库[PHP5.5.0后废弃]
- resource mysql_connect([string $server[,string $username [,string $password[,bool $new_link [,int $client_flags]]]]]):打开一个新连接或者重复使用旧连接
- resource mysql_query(string $sql[,resource $link_identifier=NULL]):发送一条sql语句
- bool mysql_select_db(string $db_name[,resource $link_identifier]):选择数据库
- bool mysql_free_result(resource $result):释放结果集内存
- bool mysql_close([resource $link_identifier=NULL]):关闭一个非持久mysql连接
- int mysql_affected_rows([resource $link_identifier=NULL]):前一mysql操作所影响的记录数
- string mysql_client_enconding([resource $link_identifier=NULL]):返回MySQL服务器中character_set变量的值,即客户端字符集
- bool mysql_data_seek(resource $result,int $row_number):移动结果集中的指针
- string mysql_error([resource $link_identifier]):返回一个mysql操作的错误信息
- int mysql_insert_id([resource $link_identifier]):获取上一步insert操作产生的id
- int mysql_num_rows(resource $result):获取结果集中的记录数
- int mysql_num_fields(resource $result):获取结果集中的字段数
- array mysql_fetch_array/row/assoc/object(resource $result):从结果集中取出一行
- resource mysql_pconnect():打开mysql持久连接,mysql_close()无法关闭该连接
PDO扩展函数库
PDO类
- object(PDO) __construct(string $dsn[,string $username[,string $password[,array $driver_options]]]):创建一个表示连接请求的PDO实例
- bool setAttribute(int $attribute,mixed $value):设置数据库连接属性。比如说$attribute=PDO::ATTR_CASE表示设置结果集下标大小写,相应的值就是$value=PDO::CASE_LOWER(小写)、$value=PDO::CASE_UPPER(大写)、$value=PDO::CASE_NATURAL(自然)
- object(PDOStatement) query(string $sql):执行一条sql语句,返回PDOStatement对象,通常是执行select语句
- int exec(string $statement):执行一条SQL语句,并返回受影响的行数,通常执行insert、delete、update语句,query()方法用来执行select语句!
- object(PDOStatement) prepare(string $statement[,array $driver_options=[]]):批量执行sql语句(不管是insert、delete、update、select),返回一个PDOStatement对象,然后用其execute()方法,执行$statement这条预处理sql语句(包含占位符?)
PDOStatement类
- bool setFetchMode(int $mode):设置结果集模式,$mode的值有PDO::FETCH_ASSOC(关联数组)、PDO::FETCH_NUM(索引数组)、PDO::FETCH_BOTH(混合数组)、PDO::FETCH_OBJ(匿名对象)
- mixed fetch([int $fetch_style]):返回结果集中的某一个条记录,$fethc就类似上面的$mode作用
- mixed fetchAll([int $fetch_style]):返回包含结果集所有记录形成的数组
- int rowCount(void):返回上一个sql语句(insert、delete、update)所影响的记录数
- int execute([array,$input_parameters]):执行一条预处理语句
目录/文件函数库
目录函数
- resource opendir(string $path):打开$path目录,返回一个资源句柄
- string readdir(resource $dir_handler):返回$dir_handler中下一个文件的文件名
- array scandir(string $path[,int $sorting_order]):遍历$path中所有的子目录(不递归)或文件,默认以字母升序排序,$sorting_order=1则降序
- bool is_dir(string $filename):判断文件名是否是一个目录。注意,如果$filename是一个相对路径,则相对当前路径
- string dirname(string $path):返回$path的目录部分(去掉最后一个/及其后面的内容)。如果没有/(单独就一个文件),则返回.(表示当前目录)。win中/和都可以,Linux中只能是/表示路径
- bool mkdir(string $path[,int $mode=0777]):创建$path目录。比如说,日期为目录名,mkdir(date('Ymd'));
- bool file_exists(string $filename):判断$filename是否存在,$filename可以是目录或文件
- bool rename(string $oldname,string $newname):将$oldname重命名为$newname
- bool rmdir(string $dirname):删除$dirname。注意$dirname必须是空目录
- void closedir([resource $dir_handle]):关闭打开的目录句柄
文件函数
- bool is_file(string $filename):判断$filename是否为一个正常的文件
- resource fopen(string $filename,string $mode):打开一个本地文件或URL,$mode指定打开的模式。r只读方式打开,文件指针指向文件头;r+读写方式打开,文件指针指向文件头;w写入方式打开,文件指针指向文件头,并将文件大小截为0,且如果文件不存在则尝试创建之;w+读写方式打开,文件指针指向文件头,并将文件大小截为0,且如果文件不存在则尝试创建之;a写入方式打开,文件指针指向文件尾,且文件不存在则尝试创建之;a+读写方式打开,文件指针指向文件尾,且文件不存在则尝试创建之。返回文件指针资源
- int fwrite(resource $handle,string $content):$handle是fopen返回的文件指针资源,$content是要写入的内容。返回写入的字符数
- bool fclose(resource $handle):关闭$handle
- string fread(resource $handle,int $length):读取$length个字节长度的字符停止。fread两种情况下停止读,一是读取$length字节长度,二是读到文件末尾EOF。返回读取的字符串
- string fgets(resource $handle):读取$handle的一行
- string fgetss(resource $handle):读取$handle的一行,并过滤掉html和php标记
- int filesize(string $filename):获取$filename的大小
- int file_put_contents(string $filename,string/resource/array $content[,int $flags=0]):等效于依次调用fopen()、fwrite()、fclose()方法,$flags=FILE_APPEND表示追加
- string file_get_contents(string $filename):等效于依次调用fopen()、fread()、fclose()
图形图像函数库
验证码原理:生成随机串,存入session,并利用图形图像库,将其描绘成图像的形式输出,用户查看图片辨别随机串,输入与session中的随机串进行比对
- resource imagecreatetruecolor(int $width,int $height):创建一个宽$width,高$height的黑色图像。返回图像资源$image。注意,必须按照GD库,而且版本要高于2.0
- int imagecolorallocate(resource $image,int $red_RGB,int $green_RGB,int $blue_RGB):给$image分配可以使用的颜色,RGB色,$red_RGB表示生成的颜色的红色成分(0-255或0x00-0xff),$green_RGB和$blue_RGB同理。返回一个整型标识符,表示某种颜色
- bool imagefilledrectangle(resource $image,int $x1,int $y1,int $x2,int $y2,int $color):在$image上画一个矩形并用$color填充,($x1,$y1)表示该矩形的左上角坐标,($x2,$y2)表示该矩形的右下角坐标,$image的左上角为坐标原点
- bool imageline(resource $image,int $x1,int $y1,int $x2,int $y2,int $color):在$image上画一条$color色的线段。$color通常通过随机分配的方式,即imagecolorallocate(resource $image,rand(0,255),rand(0,255),rand(0,255))。
- bool imagesetpixel(resource $image,int $x,int $y,int $color):在$image上画一个$color色的点
- array imagettftext(resource $image,float $size,float $angle,int $x,int $y,int $color,string $fontfile,string $text):将UTF-8编码的$text写到$image上。返回包含该写在$image上的文字信息,共有8个元素
- bool imagestring(resource $image,int $font,int $x,int $y,string $text,int $color):水平画一行字符串,相比imagettftext()要简单得多,功能也弱些
- bool imagegif/imagepng/imagejpeg(resource $image[,string $filename=NULL]):输出$image到浏览器或写入文件(指定$filename时)。如果输出到浏览器,则通常要再前面通过header('Content-Type: image/gif');指定,且之前不能有任何字符输出。
- bool imagedestroy(resource $image):销毁$image(回收$image所占的资源)
- resource imagecreatefromjpeg/png/gif(string $filename):由文件或URL创建图像
- int imagesx(resource $image):获取图像的宽度
- int imagesy(resource $image):获取图像的高度
- bool imagecopyresampled(resource $dst_image,resource $src_image,int $dst_x,int $dst_y,int $src_x,int $src_y,int $dst_w,int $dst_h,int src_w,int $src_h):将$src_image中的一部分拷贝到$dst_image中
- bool imagecopyresized(resource $dst_image,resource $src_image,int $dst_x,int $dst_y,int $src_x,int $src_y,int $dst_w,int $dst_h,int src_w,int $src_h):没有imagecopyresampled()质量高
作者:TigerYangWTH
博客:http://www.fit-china.cn