---
layout: post
title: php笔记(长期更新)
description: php笔记(长期更新)
category: tech
thumb: ARTICLEPICTURES_PATH/php.jpg
tags: [php]
---
## 预定义变量
```bash
# 当前脚本所在的文档根目录(服务器VirtualHost定义)
DOCUMENBT_ROOT
# 获取当前域名
HTTP_HOST
# 获取当前页面地址
PHP_SELF
# 获取完整url(包括?号后的参数)
REQUEST_URL
# 获得页面使用的请求方法
REQUEST_METHOD
# 当前php文件名
_FILE_
# 当前php文件中所在的行数
_LINE_
# PHP版本
PHP_VERSION
# 获得地址后的所有内容
REQUEST_URI
```
## 字符串函数
```bash
# 输出一个或多个字符串
echo
# 去除字符串首尾处的空白字符(或者其他字符)
trim
# 将一个字符串进行MD5算法加密
md5
# 将一个一维数组的值转化为字符串
implode
# 使用一个字符串分割另一个字符串
explode
# 将字符串解析成多.个变量
parse_str
# 使用另一个字符串填充字符串为指定长度
str_pad
# 重复一个字符串
str_repeat
# 子字符串替换
str_replace
# 随机打乱一个字符串
str_shuffle
# 将字符串转换为数组
str_split
# 获取字符串长度
strlen
# 从字符串中去除 HTML 和 PHP 标记
strip_tags
# 查找字符串首次出现的位置
strpos
# 查找指定字符在字符串中的最后一次出现
strrchr
# 计算指定字符串在目标字符串中最后一次出现的位置
strrpos
# 返回字符串的子串
substr
# 将字符串转化为小写
strtolower
# 将字符串转化为大写
strtoupper
# 反转字符串
strrev
# 指定文件进行MD5算法加密
md5_file
# 计算字符串的 sha1 散列值
sha1
# 以千位分隔符方式格式化一个数字
number_format
# 输出字符串
print
# 输出格式化字符串
printf
```
## 数组函数
```bash
# 新建一个数组
array
# 返回数组中所有的值
array_values
# 计算数组中的单元数目或对象中的属性个数
count
# 检查数组中是否存在某个值
in_array
# 将数组打乱
shuffle
# 将数组的内部指针指向第一个单元
reset
# 将数组的内部指针指向最后一个单元
end
# 将一个数组分割成多个
array_chunk
# 返回数组中指定的一列
array_column
# 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_combine
# 统计数组中所有的值出现的次数
array_count_values
# 用给定的值填充数组
array_fill
# 交换数组中的键和值
array_flip
# 检查给定的键名或索引是否存在于数组中
array_key_exists
# 返回数组中部分的或所有的键名
array_keys
# 合并一个或多个数组
array_merge
# 用值将数组填补到指定长度
array_pad
# 将数组最后一个单元弹出(出栈)
array_pop
# 从数组中随机取出一个或多个单元
array_rand
# 返回一个单元顺序相反的数组
array_reverse
# 在数组中搜索给定的值,如果成功则返回相应的键名
array_search
# 将数组开头的单元移出数组
array_shift
# 从数组中取出一段
array_slice
# 在数组开头插入一个或多个单元
array_unshift
# 对数组进行逆向排序并保持索引关系
arsort
# 对数组进行排序并保持索引关系
asort
```
## GET 与 POST 的区别
GET在浏览器回退时是无害的,而POST会再次提交请求
GET产生的URL地址可以被Bookmark,而POST不可以
GET请求会被浏览器主动cache,而POST不会,除非手动设置
GET请求只能进行url编码,而POST支持多种编码方式
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
GET请求在URL中传送的参数是有长度限制的,而POST么有
对参数的数据类型,GET只接受ASCII字符,而POST没有限制
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
GET参数通过URL传递,POST放在Request body中