php相关函数总结.docx_第1页
php相关函数总结.docx_第2页
php相关函数总结.docx_第3页
php相关函数总结.docx_第4页
php相关函数总结.docx_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

php相关函数总结方法说明实例php中常用的字符串输出函数echo()输出字符串die()如果参数是一个字符串,则该函数会在退出前输出它,如果参数是一个整数,这个值会被用作退出状态。退出状态值在0254之间;状态0用于成功地终止程序。printf()用于输出格式化的字符串printf(%s book. page number %u ,$str,$number); sprintf()和printf()相似,但它并不是输出字符串,而是把格式化的字符串以返回值的形式写入到一个变量中,这样就可以在需要时使用格式化后的字符串。strlen()返回字符串的长度(字符数)echo strlen(Hello world!); strpos()用于在字符串内查找一个字符或一段指定的文本。查找字符串首次出现的位置echo strpos(Hello world!,world);字符串格式化函数Itrim()从字符串左侧删除空格或其预定义字符Itrim($str);Itrim($str,”0.9”);rtrim()从字符串末端开始删除空白字符或其预定义字符str_pad()把字符串填充为新的长度STR_PAD_BOTH,STR_PAD_LEFT,STR_PAD_RIGHT(默认).str_pad($str,10,”=”, STR_PAD_LEFT)strtolower()把字符串转化为小写strtolower($str)strtoupper()把字符串转化为大写ucfirst()把字符串的首字符转化为大写Ucwords()把字符串中每个单词的首字符转化为大写nl2br()在字符串中的每个新行之前插入HTML换行符htmlentities()把字符串转换为HTML实体htmlentities ($str,ENT_ QUOTES,GB2312)htmlspacialchars()把一些预定义的字符转换为HTML实体。ENT_COMPAT,ENT_QUOTES,ENT_NOQUOTEShtmlspacialchars($str,ENT_COMPAT)Stripslashes()删除由addcslashes()添加的反斜杠strip_tags()剥去HTML,XML及PHP的标签strip_tags($str,”)number_format()通过千位分组来格式化数字number_format($num,2,”,”,”.”)strrev()反转字符串strrev($str)md5()将一个字符串进行md5计算.(false:32位十六进制;true:16位二进制)md5($paw,false)字符串比较函数strcmp()区分字符串中字母大小写的比较strcmp(string str1,string str2)strcasecmp()忽略字符串中字母大小写的比较strcasecmp(string str1,string str2)strnatcmp()自然排序法比较两个字符串,该函数对大小写敏感strnatcmp($arr$j,$arr$j+1)strnatcasecmp()忽略大小写版本数组相关函数array_values()返回数组中所有元素的值array_keys()返回数组中所有的键名in_array()在数组中搜索给定的值array_search()在数组中搜索给定的值,存在则返回键名array_key_exists()检查存在的键名或者索引是否存在于数组中array_flip()交换数组中的键和值array_reverse()将原数组中的元素顺序翻转,创建新数组并返回count()计算数组中的元素数目或对象中的属性个数array_count_values()统计数组中所有值出现的次数array_unique()用于删除数组中重复的值,并返回没有重复值的新数组array_filter()用回调函数过滤数组中的元素返回按用户自定义函数过滤后的新数组。array_filter(“数组”,”函数名”)array_walk()对数组中的每个元素应用回调函数处理UNIX时间戳及日期的转换与计算mktime()将日期和时间转变成UNIX时间戳int mktime(时,分,秒,月,日,年)strtotime()将任何英文文本的日期时间描述直接解析为UNIX时间戳int strtotime(string time,int now)PHP中获取日期和时间time()获取当前的UNIX时间戳getdate()取得日期/时间信息,返回一个时间戳组成的关键数组, 参数需要一个可选的UNIX时间戳。如果没有给出时间戳,则认为是当前本地时间。总共返回11个数组元素,如下表所示。如果将“2009年10月1日,07:30:50 EDT”转变为UNIX时间戳1254382250表示,并将其传给getdate()函数,查看各数组元素如下: 50minutes = 30hours = 7mday = 1 wday=4/一周中日的数值表示mon = 10year = 2009 yday=273/一年中日的数值表示weekday = Thursday /一周中日的完整文本表示month = October /月份的完整文本表示0 = 1254382250 /自从UNIX纪元开始至今的秒数)?gettimeofday()获取某一天中的具体时间date_sunrise()date_sunset()获取某地点某天的日出和日落时间date()格式化一个本地时间和日期date(“Y年m月d日 H:i:s”)使用微妙计算PHP脚本执行时间microtime()返回当前UNIX时间戳和微妙数, 本函数以“msec sec”的格式返回一个字符串。其中sec是自UNIX纪元到现在的秒数,而msec是微妙部分,字符串的两部分都是以秒为单位返回的。如果给出了get_as_float参数并且其值等价于TRUE,microtime()将返回一个浮点数。在小数点前面还是以时间戳格式表示,而小数点后面则表示微妙的值。get_as_float是在PHP5.0版本中新加的microtime(bool get_as_float)修改PHP的默认时区date_dafault_timezone_set()设置时区date_default_timezone_set(PRC);数组的排序函数sort()按由小到大的升序对给定数组的值排序rsort()对数组元素按照键值进行由大到小的逆向排序。usort()使用用户的自定义的回调函数对数组排序asort()对数组进行由小到大的排序并保持索引关系arsort()对数组进行由大到小的逆向排序并保持索引关系uasort()使用用户自定义的比较回调函数对数组中的值进行排序并保持索引关系ksort()按照键名对数组进行由小到大的排序,为数组值保留原来的键krsort()将数组按照由大到小的键逆序排序,为数组值保留原来的键uksort()使用用户自定义的比较回调函数对数组中的键名进行排序natsort()用自然顺序算法对给定数组中的元素排序natcasesort()用不区分大小写的自然顺序算法对给定数组中的元素排序array_multisort()对多个数组或多维数组进行排序数组函数拆分、合并、分解和接合array_slice()在数组中根据条件取出一段值并返回array_slice ( array $array , int $offset , int $length = NULL , bool $preserve_keys = false )array_splice()把数组中的一部分去掉并用其它值取代array array_splice ( array &$input , int $offset , int $length = 0 , mixed $replacement )array_combine()创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值array array_combine ( array $keys , array $values )array_merge()合并一个或多个数组array array_merge ( array $array1 , array $. )array_intersect()计算数组的交集arrayarray_intersect ( array $array1 , array $array2 , array $ . )array_diff()计算数组的差集array array_diff ( array $array1 , array $array2 , array $. )数组函数与数据结构array_push()将一个或多个单元压入数组的末尾(入栈)int array_push ( array &$array , mixed $var , mixed $. )array_pop()将数组最后一个单元弹出(出栈)mixed array_pop ( array &$array )array_shift()将数组开头的单元移出数组mixed array_shift ( array &$array )array_unshift()在数组开头插入一个或多个单元int array_unshift ( array &$array , mixed $var , mixed $. )其他有用的数组处理函数array_rand()从数组中随机取出一个或多个单元mixed array_rand ( array $input , int $num_req = 1 )shuffle()将数组打乱bool shuffle ( array &$array )array_sum()计算数组中所有值的和number array_sum ( array $array )range()建立一个包含指定范围单元的数组array range ( mixed $start , mixed $limit , number $step = 1 )正则表达式语法规则preg_match()执行一个正则表达式匹配int preg_match ( string $pattern , string $subject , array &$matches , int $flags = 0 , int $offset = 0 )preg_match_all()执行一个全局正则表达式匹配PREG_SET_ORDER;PREG_OFFSET_CAPTUREpreg_match_all ( string $pattern , string $subject , array &$matches , int $flags = PREG_PATTERN_ORDER , int $offset = 0 )preg_replace()执行一个正则表达式的搜索和替换mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject , int $limit = -1 , int &$count )preg_split()通过一个正则表达式分隔字符串array preg_split ( string $pattern , string $subject , int $limit = -1 , int $flags = 0 )preg_grep()返回匹配模式的数组条目array preg_grep ( string $pattern , array $input , int $flags = 0 )preg_replace_callback()执行一个正则表达式搜索并且使用一个回调进行替换mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject , int $limit = -1 , int &$count )文件系统概述filetype()取得文件类型string filetype ( string $filename )is_file()判断给定文件名是否为一个正常的文件bool is_file ( string $filename )is_dir()判断给定文件名是否是一个目录bool is_dir ( string $filename )is_link()判断给定文件名是否为一个符号连接bool is_link ( string $filename )file_exists()检查文件或目录是否存在bool file_exists ( string $filename )filesize()取得文件大小int filesize ( string $filename )is_readable()判断给定文件名是否可读bool is_readable ( string $filename )is_writable()判断给定的文件名是否可写bool is_writable ( string $filename )is_executable()判断给定文件名是否可执行bool is_executable ( string $filename )filectime()取得文件的 inode 修改时间int filectime ( string $filename )filemtime()取得文件修改时间int filemtime ( string $filename )fileatime()取得文件的上次访问时间int fileatime ( string $filename )stat()给出文件的信息array stat ( string $filename )目录的操作basename()返回路径中的文件名部分string basename(string path,string suffix)dirname()与basename()函数相反,只需要一个参数,给出一个包含指向一个文件的全路径的字符串,返回去掉文件名后的目录名$path=www/index.txt;echo dirname($path);输出结果:wwwpathinfo()返回一个关联数组,其中包括指定路径中的目录名,基本名,扩展名三个部分,分别通过数组键dirname,basename,extension来引用$path=www/index.txt;$path_arr=pathinfo($path);echo $path_arrdirname;echo $path_arrbasename;echo $path_arrextension;opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型),如果该目录不存在或者没有访问权限,则返回false。readdir()函数用于读取指定目录,热爱已经用opendir()函数打开的可操作目录句柄作为参数,函数返回当前目录指针位置的一个文件名,并将目录指针身后移动一位。当指针位于目录的结尾时,因为没有文件存在则返回false.closedir()函数用于关闭指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数。函数无返回值,运行后将关闭打开的目录。rewinddir()用于倒回目录句柄,接受已经用opendir()函数打开的可操作目录句柄作为参数。将目录指针重置目录到开始处,即倒回目录的开关mkdir()建立一个新目录rmdir()只能删除一个空目录并且目录必须存在unlink()将目录中的每个文件都删除掉,再回来将这个空目录删除copy()文件进行复制操作字符串处理函数strstr()查找字符串的首次出现string strstr ( string $haystack , mixed $needle , bool $before_needle = false )strpos()查找字符串首次出现的位置mixed strpos ( string $haystack , mixed $needle , int $offset = 0 )strrpos()计算指定字符串在目标字符串中最后一次出现的位置int strrpos ( string $haystack , string $needle , int $offset = 0 )substr()返回字符串的子串string substr ( string $string , int $start , int $length )str_replace()子字符串替换mixed str_replace ( mixed $search , mixed $replace , mixed $subject , int &$count )explode()使用一个字符串分割另一个字符串array explode ( string $delimiter , string $string , int $limit )implode()将一个一维数组的值转化为字符串string implode ( string $glue , array $pieces )文件的基本操作fopen()用来打开一个文件,并在打开一个文件时,还需要指定如何使用它resource fopen(string filename,string mode,bool user_include_path,resource zcontext)fclose()关闭一个已打开的文件指针fwite()写入文件(可安全用于二进制文件)fputs()fwrite() 的别名file_put_contens()将整个文件读入一个字符串string file_get_contents ( string $filename , bool $use_include_path = false , resource $context , int $offset = -1 , int $maxlen )fgets()fgets()函数一次至多从打开的文件资源中读取一行内容(第二个可选参数length,默认为1024个字符)fgetc()在打开的文件资源中只读取当前指针位置处的一个字符。如果遇到文件结束标志EOF,将返回FALSE值file()与file_get_contents()类似,不需要使用fopen()打开文件,不同的是file()函数可以把整个文件读入到一个数组中,数组中的每个元素对应文件中相应的行,各元素由换行符分隔,同时换行符仍附加在每个元素的末尾readfile()该函数可以读取指定的整个文件,立即输出到输出缓冲区,并返回读取的字节数,该函数也不需要使用fopen()函数打开文件访问远程文件: 如果需要访问远程文件,则必须在PHP的配置文件中激活“allow_url_fopen”选项,才能使用fopen()函数打开远程文件ftell()文件指针返回文件指针的当前位置int ftell(resource handle)fseek()文件指针移动文件指针到指定的位置(第三个参数:SEEK_CUR 设置指针为当前位置加上第二个参数所提供的offset字节SEEK_END 设置指针为EOF位置加上offset字节 ,在这样offset必须设置为负值SEEK_SET 设置指针位置为offset字节处,这与忽略第三个参数whence效果相同)int fseek(resource handle,int offset,int whence)rewind()文件指针移动文件指针到文件的开头bool rewind(resource handle)使用文件指针函数时,必须提供一个用fopen()函数打开的、合法的文件指针flock()可以对文件使用锁定机制(第二个参数:LOCK_SH取得共享锁定(从文件中读取数据时使用)LOCK_EX取得独占锁定(向文件中写入数据时使用)LOCK_UN释放锁定(无论共享或独占,都用它释放)LOCK_NB附加锁定(如果不希望flock()锁定时阻塞,则应在上述锁定后加上该锁)copy()复制文件copy(来源文件,目的文件)unlink()删除文件unlick(目标文件)ftruncate()将文件截取到指定长度ftruncate(目标文件,截取长度)rename()重命名文件或目录rename(旧文件名,新文件名)类的封装性_set()该方法能够控制在对象外部只能为私有的成员属性赋值,不能获取私有属性的值。用户需要在声明类时自己将它加到类中才可以使用void _set(string name,mixed value)_get()直接在对象的外部获取私有属性的值时,会自动调用此方法,返回私有属性的值。mixed _get(string name)_isset()用于检测私有属性值是否被设定。(如果对象里面成员是公有的,可以直接使用 isset() 函数)如果是私有的成员属性,那就需要在类里面加上一个 _isset() 方法:private function _isset($property_name) return isset($this-$property_name);_unset()用于删除私有属性(unset() 函数只能删除对象的公有成员属性)当要删除对象内部的私有成员属性时,需要使用_unset() 方法:privatefunction _unset($property_name) unset($this-$property_name);类的继承 parent: 方法名在子类的重载方法中调用父类中被覆盖的方法常用关键字和魔术方法final关键字修饰不被继承的方法static关键字将类中的成员标识为静态的,既可 以用来标识成员属性,也可以用来标识成员方法(类的静态属性非常类似于函数的全局变量)类名:静态成员属性名;类名:静态成员方法名()self:静态成员属性名;在类的成员方法中使用这种方式访问本类中的静态成员属性self:静态成员方法名();在类的成员方法中使用这种方式访问本类中的静态成员方法PHP中静态成员和方法的特性如下:1.静态成员不能通过类的实例访问,但是静态方法可以。2.静态成员不能通过-运算符访问。3.在静态方法的作用域中,不能出现$this关键字,也就是说不能在静态方法中访问普通的成员变量。4.静态成员和方法,都可以通过类名直接访问,而无需实例化对象。单态设计模式(单例模式): 单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。单台模式的三个关键点: 需要一个保存类的唯一实例的静态成员变量;构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义;必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用。示例如下:?phpclass DB private static $obj = null; /声明一个私有的,静态的成员属性$obj private function_construct() /私有构造方法,只能在类的内部实例化对象 echo 连接数据库成功; public static function getInstance() / 通过此静态方法才能获取本类的对象 if(is_null(self:$obj) /如果本类中的$obj为空,说明还没有被实例化过 self:$obj = new self(); /实例化本类对象 return self:$obj; /返回本类的对象 public function query($sql) /执行SQL语句完成对数据库的操作 echo $sql; $db = DB:getInstance(); /只能使用静态方法getInstance()去获取DB类的对象$db - query(select *from user); /访问对象中的成员?const关键字在php中定义常量是通过调用define()函数来完成的,但要将类中的成员属性定义为常量,则只能使用const关键字(注意使用const声明的常量名称前不要使用“$”符号,而且常量名称通常都是大写的。)const和static的功能不同,但使用的方法比较相似instanceof关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作。作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。$manager = new Employee();if ($manager instanceof Employee) echo Yes;clone关键字可以根据现有的对象克隆出一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰_clone()如果需要对克隆后的副本对象在克隆时重新为成员属性赋值,则可以在类中声明一个魔术方法“_clone()”.该方法是在对象克隆时自动调用的,所以就可以通过此方法对克隆后的副本重新初始化。_clone()方法不需要任何参数,该方法中自动包含$this对象的引用,$this是副本对象的引用。_toString()快速获取对象的字符串表示的最便捷的方式,它是在直接输出对象引用时自动调用的方法。(注:_toString()方法中一定要有一个字符串作为返回值)class TestClass private $foo;function _construct($foo) $this-foo = $foo; public function _toString() return $this-foo; $obj = new TestClass(Hello);echo $obj; _call()调用对象中不存在的方法时就会自动调用该方法,并且程序也可以继续向下执行_autoload()自动加载类seralize()对象的串行化有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串, 等到达另一端时,再还原为原来的对象,这个过程称之为串行化。串行化有两个过程:一个是串行化,就是把对象转化为二进制的字符串,另一个是反串行化,就是把对象转化的二进制字符串再转 化为对象unserialize()反串行化对象_sleep()在对象串行化的时候,会调用 一个_sleep()方法来完成一些睡前的事情;不接受任何参数,但返回一个数组,其中包含需要串行化的属性。末被包 含的属性将在串行化时被忽略,如果没有_sleep()方法,PHP 将保存所有属性_wakeup() 而在重新醒来,即由二进制串重新组成一个对象 的时候,则会自动调用PHP 的另一个函数_wakeup(),做一些对象醒来就要做的动作。抽象类与接口abstract关键字修饰抽象方法abstract function fun1();abstract function fun2();interface关键字接口声明(注:接口中所有的方法都要求是抽象方法)interface 接口名常量成员抽象方法接口中所有的方法都要求是抽象方法,所以就不需要在方法前使用abstract关键字标识了,而且在接口中也不需要显示的使用public访问权限进行修饰,因为默认权限就是public的,也只能是公有的,另外接口和抽象类一样也不能实例化对象,它是一种更严格的规范,也需要通过子类来实现,但可以直接使用接口名称在接口外面去获取常量成员的值,一个接口的声明例子如下:extends关键字继承implements关键字实现接口中的抽象方法实现多个接口的格式如下:class 类名 implements 接口一、接口二.接口n在继承一个类的同时实现多个接口:class 类名 extens 父类名 implements 接口一、接口二.接口ntrait特性PHP从5.4版本开始支持Trait特性,和class很相似,类中一般的特性Trait都可以实现。Trait可不是用来代替类的,而是要去混入类中,Trait是为了减少单继承语言的限制,使开发人员能够自由地不同层次结构内独立的类中复用方法集。Trait和类组合的主义是定义了一种方式来减少复杂性,避免传统多继承相关的典型问题。例如,需要同时继承两个抽象类,这是PHP语言不支持的功能,Trait就是为了解决这个问题。或者可以理解为在继承类链中隔离了子类继承父类的某些特性,相当于要用父类的特性的时候,如果有Trait在就优先用Trait的成员。注:Trait无法如类一亲使用new实例化,因为Trait就是用来混入类中使用的,不能单独使用Trait的声明:Trait的基本使用:如果要在类中使用Trait,需要通过use关键字将Trait混入类中method1();/通过Demo1_class的对象,可以直接调用混入该类中Demo1_trait中的成员方法method1()$obj-method2(); /通过Demo1_class的对象,可以直接调用混入该类中Demo1_trait中的成员方法method2()也可能通过use关键字一次混入多个Trait一起使用class Demo1_classuse Demo1_trait,Demo2_trait,Demo3_trait;PHP中GD库的使用略命名空间命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。namespace关键字创建一个命名空间命名空间的子空间和公共空间:命名空间和文件系统的结构很像,文件夹可以有子文件夹,命名空间也可以定义子空间来描述各个空间之间的所属关系.命名空间中的名称和术语:非限定名称,限定名称和完全限定名称是使用命名空间的三个术语。别名和导入:别名和导入可以看作调用命名空间元素的一种快捷方式。允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。PHP命名空间支持两种使用别名或导入的方式:为类名称使用别名,或为命名空间名称使用别名。注意PHP不支持导入函数或常量。在PHP中,别名是通过操作符use来实现的。注意:如果在用use进行导入的时候,当前空间有相同的名字元素,将会发生致命错误。_NAMESPACE_魔法常量魔法常量_NAMESPACE_的值是当前空间名称,可以通过namespace关键字和_NAMESPACE_魔法常量动态地访问元素。PHP图片处理imagecreate()创建画布资源imageCreateTrueColor()resource imagecreatefromjpeg(string $filename) /从JPEG文件或URL新建一图像resource imagecreatefrompng(string $filename) /从PNG文件或URL新建一图像resource imagecreatefromgif(string $filename) /从GIF文件或URL新建一图像imagepng()以PNG格式将图像输出到浏览器或文件getimagesize()通过图片名称就可以获取图片的类型、宽度和高度等array getimagesize(string filename,array &imageinfo) /获取图片的大小和类型?phplist($width,$height,$type,$attr) = getimagesize(image/nynds.jpg);echo ;?imagecopyresized()图片缩放imagecopyresampled()函数处理后图片质量会更好一些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 )注:dst_image和src_image分别是目标图像和源图像的标识符imagecopyresampled()图片裁剪:图片裁剪是指在一个大的背景图片中裁剪出一张指定区域的图片,常见的应用是在用户设置个人头像时,可以从上传的图片中,裁剪出一个合适的区域作为自己的个人头像图片。图像裁剪和图片缩放的相似,所以也是借助imagecopyresampled()函数去实现这个功能。同样也是以JPEG图片格式为例,声明一个图像裁剪

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论