php总结的一些知识点

一、php基础:

(一)数组函数(熟记几个常用的):
array()	创建数组。
array_change_key_case()	把数组中所有键更改为小写或大写。
array_chunk()	把一个数组分割为新的数组块。
array_column()	返回输入数组中某个单一列的值。
array_combine()	通过合并两个数组来创建一个新数组。
array_count_values()	用于统计数组中所有值出现的次数。
array_diff()	比较数组,返回差集(只比较键值)。
array_diff_assoc()	比较数组,返回差集(比较键名和键值)。
array_diff_key()	比较数组,返回差集(只比较键名)。
array_diff_uassoc()	比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。
array_diff_ukey()	比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。
array_fill()	用给定的键值填充数组。
array_fill_keys()	用指定键名的给定键值填充数组。
array_filter()	用回调函数过滤数组中的元素。
array_flip()	交换数组中的键和值。
array_intersect()	比较数组,返回交集(只比较键值)。
array_intersect_assoc()	比较数组,返回交集(比较键名和键值)。
array_intersect_key()	比较数组,返回交集(只比较键名)。
array_intersect_uassoc()	比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。
array_intersect_ukey()	比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。
array_key_exists()	检查指定的键名是否存在于数组中。
array_keys()	返回数组中所有的键名。
array_map()	把数组中的每个值发送到用户自定义函数,返回新的值。
array_merge()	把一个或多个数组合并为一个数组。
array_merge_recursive()	递归地合并一个或多个数组。
array_multisort()	对多个数组或多维数组进行排序。
array_pad()	用值将数组填补到指定长度。
array_pop()	删除数组的最后一个元素(出栈)。
array_product()	计算数组中所有值的乘积。
array_push()	将一个或多个元素插入数组的末尾(入栈)。
array_rand()	返回数组中一个或多个随机的键。
array_reduce()	通过使用用户自定义函数,以字符串返回数组。
array_replace()	使用后面数组的值替换第一个数组的值。
array_replace_recursive()	递归地使用后面数组的值替换第一个数组的值。
array_reverse()	以相反的顺序返回数组。
array_search()	搜索数组中给定的值并返回键名。
array_shift()	删除数组中首个元素,并返回被删除元素的值。
array_slice()	返回数组中被选定的部分。
array_splice()	删除并替换数组中指定的元素。
array_sum()	返回数组中值的和。
array_udiff()	比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。
array_udiff_assoc()	比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_udiff_uassoc()	比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。
array_uintersect()	比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。
array_uintersect_assoc()	比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_uintersect_uassoc()	比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。
array_unique()	删除数组中的重复值。
array_unshift()	在数组开头插入一个或多个元素。
array_values()	返回数组中所有的值。
array_walk()	对数组中的每个成员应用用户函数。
array_walk_recursive()	对数组中的每个成员递归地应用用户函数。
arsort()	对关联数组按照键值进行降序排序。
asort()	对关联数组按照键值进行升序排序。
compact()	创建包含变量名和它们的值的数组。
count()	返回数组中元素的数目。
current()	返回数组中的当前元素。
each()	返回数组中当前的键/值对。
end()	将数组的内部指针指向最后一个元素。
extract()	从数组中将变量导入到当前的符号表。
in_array()	检查数组中是否存在指定的值。
key()	从关联数组中取得键名。
krsort()	对数组按照键名逆向排序。
ksort()	对数组按照键名排序。
list()	把数组中的值赋给一些变量。
natcasesort()	用“自然排序”算法对数组进行不区分大小写字母的排序。
natsort()	用“自然排序”算法对数组排序。
next()	将数组中的内部指针向前移动一位。
pos()	current() 的别名。
prev()	将数组的内部指针倒回一位。
range()	创建包含指定范围单元的数组。
reset()	将数组的内部指针指向第一个元素。
rsort()	对数组逆向排序。
shuffle()	将数组打乱。
sizeof()	count() 的别名。
sort()	对数组排序。
uasort()	使用用户自定义的比较函数对数组中的键值进行排序。
uksort()	使用用户自定义的比较函数对数组中的键名进行排序。
usort()	使用用户自定义的比较函数对数组进行排序。
(二)字符串函数(熟记几个常用的)
addcslashes()	返回在指定的字符前添加反斜杠的字符串。
addslashes()	返回在预定义的字符前添加反斜杠的字符串。
bin2hex()	把 ASCII 字符的字符串转换为十六进制值。
chop()	删除字符串右侧的空白字符或其他字符。
chr()	从指定的 ASCII 值返回字符。
chunk_split()	把字符串分割为一系列更小的部分。
convert_cyr_string()	把字符串由一种 Cyrillic 字符集转换为另一种。
convert_uudecode()	解码 uuencode 编码字符串。
convert_uuencode()	使用 uuencode 算法对字符串进行编码。
count_chars()	返回有关字符串中所用字符的信息。
crc32()	计算字符串的 32 位 CRC。
crypt()	单向的字符串加密法(hashing)。
echo()	输出一个或多个字符串。
explode()	把字符串打散为数组。
fprintf()	把格式化的字符串写入到指定的输出流。
get_html_translation_table()	返回由 htmlspecialchars() 和 htmlentities() 使用的翻译表。
hebrev()	把希伯来文本转换为可见文本。
hebrevc()	把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>。
hex2bin()	把十六进制值的字符串转换为 ASCII 字符。
html_entity_decode()	把 HTML 实体转换为字符。
htmlentities()	把字符转换为 HTML 实体。
htmlspecialchars_decode()	把一些预定义的 HTML 实体转换为字符。
htmlspecialchars()	把一些预定义的字符转换为 HTML 实体。
implode()	返回由数组元素组合成的字符串。
join()	implode() 的别名。
lcfirst()	把字符串的首字符转换为小写。
levenshtein()	返回两个字符串之间的 Levenshtein 距离。
localeconv()	返回本地数字及货币格式信息。
ltrim()	移除字符串左侧的空白字符或其他字符。
md5()	计算字符串的 MD5 散列。
md5_file()	计算文件的 MD5 散列。
metaphone()	计算字符串的 metaphone 键。
money_format()	返回格式化为货币字符串的字符串。
nl_langinfo()	返回特定的本地信息。
nl2br()	在字符串中的每个新行之前插入 HTML 换行符。
number_format()	以千位分组来格式化数字。
ord()	返回字符串中第一个字符的 ASCII 值。
parse_str()	把查询字符串解析到变量中。
print()	输出一个或多个字符串。
printf()	输出格式化的字符串。
quoted_printable_decode()	把 quoted-printable 字符串转换为 8 位字符串。
quoted_printable_encode()	把 8 位字符串转换为 quoted-printable 字符串。
quotemeta()	引用元字符。
rtrim()	移除字符串右侧的空白字符或其他字符。
setlocale()	设置地区信息(地域信息)。
sha1()	计算字符串的 SHA-1 散列。
sha1_file()	计算文件的 SHA-1 散列。
similar_text()	计算两个字符串的相似度。
soundex()	计算字符串的 soundex 键。
sprintf()	把格式化的字符串写入变量中。
sscanf()	根据指定的格式解析来自字符串的输入。
str_getcsv()	把 CSV 字符串解析到数组中。
str_ireplace()	替换字符串中的一些字符(对大小写不敏感)。
str_pad()	把字符串填充为新的长度。
str_repeat()	把字符串重复指定的次数。
str_replace()	替换字符串中的一些字符(对大小写敏感)。
str_rot13()	对字符串执行 ROT13 编码。
str_shuffle()	随机地打乱字符串中的所有字符。
str_split()	把字符串分割到数组中。
str_word_count()	计算字符串中的单词数。
strcasecmp()	比较两个字符串(对大小写不敏感)。
strchr()	查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)
strcmp()	比较两个字符串(对大小写敏感)。
strcoll()	比较两个字符串(根据本地设置)。
strcspn()	返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。
strip_tags()	剥去字符串中的 HTML 和 PHP 标签。
stripcslashes()	删除由 addcslashes() 函数添加的反斜杠。
stripslashes()	删除由 addslashes() 函数添加的反斜杠。
stripos()	返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr()	查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen()	返回字符串的长度。
strnatcasecmp()	使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。
strnatcmp()	使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。
strncasecmp()	前 n 个字符的字符串比较(对大小写不敏感)。
strncmp()	前 n 个字符的字符串比较(对大小写敏感)。
strpbrk()	在字符串中查找一组字符的任何一个字符。
strpos()	返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrchr()	查找字符串在另一个字符串中最后一次出现。
strrev()	反转字符串。
strripos()	查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos()	查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strspn()	返回在字符串中包含的特定字符的数目。
strstr()	查找字符串在另一字符串中的第一次出现(对大小写敏感)。
strtok()	把字符串分割为更小的字符串。
strtolower()	把字符串转换为小写字母。
strtoupper()	把字符串转换为大写字母。
strtr()	转换字符串中特定的字符。
substr()	返回字符串的一部分。
substr_compare()	从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
substr_count()	计算子串在字符串中出现的次数。
substr_replace()	把字符串的一部分替换为另一个字符串。
trim()	移除字符串两侧的空白字符和其他字符。
ucfirst()	把字符串中的首字符转换为大写。
ucwords()	把字符串中每个单词的首字符转换为大写。
vfprintf()	把格式化的字符串写到指定的输出流。
vprintf()	输出格式化的字符串。
vsprintf()	把格式化字符串写入变量中。
wordwrap()	打断字符串为指定数量的字串
(三)魔术方法(熟记几个常用的)

1、__get、__set

这两个方法是为在类和他们的父类中没有声明的属性而设计的

__get( $property ) 当调用一个未定义的属性时访问此方法
__set( $property, $value ) 给一个未定义的属性赋值时调用
这里的没有声明包括访问控制为proteced,private的属性(即没有权限访问的属性)

2、__isset、__unset

__isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法
__unset( $property ) 当在一个未定义的属性上调用unset()函数时调用此方法
与__get方法和__set方法相同,这里的没有声明包括访问控制为proteced,private的属性(即没有权限访问的属性)
3、__call

__call( $method, $arg_array ) 当调用一个未定义(包括没有权限访问)的方法是调用此方法

4、__autoload

__autoload 函数,使用尚未被定义的类时自动调用。通过此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

注意: 在 __autoload 函数中抛出的异常不能被 catch 语句块捕获并导致致命错误。

5、__construct、__destruct

__construct 构造方法,当一个对象被创建时调用此方法,好处是可以使构造方法有一个独一无二的名称,无论它所在的类的名称是什么,这样你在改变类的名称时,就不需要改变构造方法的名称
__destruct 析构方法,PHP将在对象被销毁前(即从内存中清除前)调用这个方法
默认情况下,PHP仅仅释放对象属性所占用的内存并销毁对象相关的资源.,析构函数允许你在使用一个对象之后执行任意代码来清除内存,当PHP决定你的脚本不再与对象相关时,析构函数将被调用.,在一个函数的命名空间内,这会发生在函数return的时候,对于全局变量,这发生于脚本结束的时候,如果你想明确地销毁一个对象,你可以给指向该对象的变量分配任何其它值,通常将变量赋值勤为NULL或者调用unset。

6、__clone

PHP5中的对象赋值是使用的引用赋值,使用clone方法复制一个对象时,对象会自动调用__clone魔术方法,如果在对象复制需要执行某些初始化操作,可以在__clone方法实现。

7、__toString

__toString方法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时,如果类没有实现此方法,则无法通过echo打印对象,否则会显示:Catchable fatal error: Object of class test could not be converted to string in,此方法必须返回一个字符串。

在PHP 5.2.0之前,__toString方法只有结合使用echo() 或 print()时 才能生效。PHP 5.2.0之后,则可以在任何字符串环境生效(例如通过printf(),使用%s修饰符),但 不能用于非字符串环境(如使用%d修饰符)。从PHP 5.2.0,如果将一个未定义__toString方法的对象 转换为字符串,会报出一个E_RECOVERABLE_ERROR错误。

8、__sleep、__wakeup

__sleep 串行化的时候用
__wakeup 反串行化的时候调用
serialize() 检查类中是否有魔术名称 __sleep 的函数。如果这样,该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组。

使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。

相反地,unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在,此函数可以重建对象可能具有的任何资源。使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。

9、__set_state

当调用var_export()时,这个静态 方法会被调用(自PHP 5.1.0起有效)。本方法的唯一参数是一个数组,其中包含按array(’property’ => value, …)格式排列的类属性。

10、__invoke

当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。PHP5.3.0以上版本有效
11、__callStatic

它的工作方式类似于 __call() 魔术方法,__callStatic() 是为了处理静态方法调用,PHP5.3.0以上版本有效,PHP 确实加强了对 __callStatic() 方法的定义;它必须是公共的,并且必须被声明为静态的。同样,__call() 魔术方法必须被定义为公共的,所有其他魔术方法都必须如此。

(四)全局变量(熟记几个常用的)
$_SERVER['PHP_SELF']	返回当前执行脚本的文件名。

$_SERVER['GATEWAY_INTERFACE']	返回服务器使用的 CGI 规范的版本。

$_SERVER['SERVER_ADDR']	返回当前运行脚本所在的服务器的 IP 地址。

$_SERVER['SERVER_NAME']	返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。

$_SERVER['SERVER_SOFTWARE']	返回服务器标识字符串(比如 Apache/2.2.24)。

$_SERVER['SERVER_PROTOCOL']	返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。

$_SERVER['REQUEST_METHOD']	返回访问页面使用的请求方法(例如 POST)。

$_SERVER['REQUEST_TIME']	返回请求开始时的时间戳(例如 1577687494)。

$_SERVER['QUERY_STRING']	返回查询字符串,如果是通过查询字符串访问此页面。

$_SERVER['HTTP_ACCEPT']	返回来自当前请求的请求头。

$_SERVER['HTTP_ACCEPT_CHARSET']	返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']	返回来自当前请求的 Host 头。

$_SERVER['HTTP_REFERER']	返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。

$_SERVER['HTTPS']	是否通过安全 HTTP 协议查询脚本。

$_SERVER['REMOTE_ADDR']	返回浏览当前页面的用户的 IP 地址。

$_SERVER['REMOTE_HOST']	返回浏览当前页面的用户的主机名。

$_SERVER['REMOTE_PORT']	返回用户机器上连接到 Web 服务器所使用的端口号。

$_SERVER['SCRIPT_FILENAME']	返回当前执行脚本的绝对路径。

$_SERVER['SERVER_ADMIN']	该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。

$_SERVER['SERVER_PORT']	Web 服务器使用的端口。默认值为 “80”。

$_SERVER['SERVER_SIGNATURE']	返回服务器版本和虚拟主机名。

$_SERVER['PATH_TRANSLATED']	当前脚本所在文件系统(非文档根目录)的基本路径。

$_SERVER['SCRIPT_NAME']	返回当前脚本的路径。

$_SERVER['SCRIPT_URI']	返回当前页面的 URI。
(五)常见的HTTP状态码:

100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果

 101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果

 201   (已创建)  请求成功并且服务器创建了新的资源。
 202   (已接受)  服务器已接受请求,但尚未处理。
 203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。
 204   (无内容)  服务器成功处理了请求,但没有返回任何内容。 
 205   (重置内容) 服务器成功处理了请求,但没有返回任何内容。
 206   (部分内容)  服务器成功处理了部分 GET 请求。

3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

 301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
 302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
 303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。   
 304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 
 305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 
 307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。

401   (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 
403   (禁止) 服务器拒绝请求。 
404   (未找到) 服务器找不到请求的网页。 
405   (方法禁用) 禁用请求中指定的方法。 
406   (不接受) 无法使用请求的内容特性响应请求的网页。 
407   (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 
408   (请求超时)  服务器等候请求时发生超时。 
409   (冲突)  服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 
410   (已删除)  如果请求的资源已永久删除,服务器就会返回此响应。 
411   (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 
412   (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 
413   (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 
414   (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。 
415   (不支持的媒体类型) 请求的格式不受请求页面的支持。 
416   (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。 
417   (未满足期望值) 服务器未满足"期望"请求标头字段的要求。

500:服务器遇到未知的错误,导致无法完成客户端当前的请求。

501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 
502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 
503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 
504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。 
505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。  

503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求,以上http状态码是服务器经常返回的状态代码,用户只能通过浏览器的状态了解服务器是否正常运行,一般除了错误的状态码,都不会看到服务器的状态码的,

(六)超全局变量
元素/代码描述
$_SERVER[‘PHP_SELF’]当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER[‘GATEWAY_INTERFACE’]服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。
$_SERVER[‘SERVER_ADDR’]当前运行脚本所在的服务器的 IP 地址
$_SERVER[‘SERVER_NAME’]当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER[‘SERVER_SOFTWARE’]服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER[‘SERVER_PROTOCOL’]请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER[‘REQUEST_METHOD’]访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。
$_SERVER[‘REQUEST_TIME’]请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER[‘QUERY_STRING’]query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER[‘HTTP_ACCEPT’]当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER[‘HTTP_ACCEPT_CHARSET’]当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。
$_SERVER[‘HTTP_HOST’]当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER[‘HTTP_REFERER’]引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值