[李景山php]每天TP5-20170202|thinkphp5-Request.php-5
2017-01-09 09:23
417 查看
/** * 设置或者获取当前的Header * @access public * @param string|array $name header名称 * @param string $default 默认值 * @return string */ public function header($name = '', $default = null) {// 设置 或者 获取 当前的 头信息 if (empty($this->header)) {// 如果头信息为空 $header = [];// 准备一个空的头信息容器, $server = $this->server ?: $_SERVER;// 去检查一下server 的情况 foreach ($server as $key => $val) {// 把里面的每一个 东西都拿出来 if (0 === strpos($key, 'HTTP_')) {// 进行对比 $key = str_replace('_', '-', strtolower(substr($key, 5)));// 替换 变成 头信息 $header[$key] = $val;// 存放到头信息 仓库 } } if (isset($server['CONTENT_TYPE'])) {// 如果通过 服务器 设置了 内容仓库 $header['content-type'] = $server['CONTENT_TYPE'];// 出发的东西就要用这个 } if (isset($server['CONTENT_LENGTH'])) {// 如果设置了 对应的 $header['content-length'] = $server['CONTENT_LENGTH'];// 长度 } $this->header = array_change_key_case($header);// 数组改变 key 值 大小写 } if (is_array($name)) {// 如果是 拼合后 返回 return $this->header = array_merge($this->header, $name); } if ('' === $name) {// 如果 是空 return $this->header;// 返回 头信息 } $name = str_replace('_', '-', strtolower($name));// 删除 当前的 东西 return isset($this->header[$name]) ? $this->header[$name] : $default;// 返回是否设置的东西 } /** * 获取变量 支持过滤和默认值 * @param array $data 数据源 * @param string|false $name 字段名 * @param mixed $default 默认值 * @param string|array $filter 过滤函数 * @return mixed */ public function input($data = [], $name = '', $default = null, $filter = null) {// 如果 输入 跟 输出 获取输入数据, 支持 过滤 和 默认值 if (false === $name) {// 获取信息 如果 为false 那么 返回 数据 // 获取原始数据 return $data; } $name = (string) $name;// 如果 有 key值 if ('' != $name) {// 如果 key 不为空,解析 name // 解析name if (strpos($name, '/')) {// 如果 str 有这个格式 list($name, $type) = explode('/', $name);// 如果 列表 } else {// 否则 默认的类型 是 s $type = 's'; } // 按.拆分成多维数组进行判断 foreach (explode('.', $name) as $val) {// 遍历另外一种方式 if (isset($data[$val])) {// 如果 设置 $data = $data[$val]; } else {// 默认值 // 无输入数据,返回默认值 return $default; } } if (is_object($data)) {// 如果是对象,直接返回 return $data; } }// 返回数据 // 解析过滤器 $filter = $filter ?: $this->filter;// 获取 解析器 if (is_string($filter)) {// 如果字符串 $filter = explode(',', $filter); } else {// 否则 数组 $filter = (array) $filter; } $filter[] = $default;// 添加一个默认的,哈哈,反正要有一个才行 if (is_array($data)) {// 如果是 数据 array_walk_recursive($data, [$this, 'filterValue'], $filter);// 遍历资源,并且强制转换 reset($data);// 重置数据 } else {// 发送更多的数据 $this->filterValue($data, $name, $filter); } if (isset($type) && $data !== $default) {// 如果设置了 类型 并且 类型 不同与 默认的 // 强制类型转换 $this->typeCast($data, $type);// 首先先是强制转换 数据 } return $data;// 返回数据 } /** * 设置或获取当前的过滤规则 * @param mixed $filter 过滤规则 * @return mixed */ public function filter($filter = null) { if (is_null($filter)) { return $this->filter; } else { $this->filter = $filter; } }// 过滤器设置
相关文章推荐
- [李景山php]每天TP5-20170202|thinkphp5-Request.php-5
- [李景山php]每天TP5-20170203|thinkphp5-Request.php-6
- [李景山php]每天TP5-20170131|thinkphp5-Request.php-3
- [李景山php]每天TP5-20170129|thinkphp5-Request.php-1
- [李景山php]每天TP5-20170130|thinkphp5-Request.php-2
- [李景山php]每天TP5-20170201|thinkphp5-Request.php-4
- [李景山php]每天TP5-20170203|thinkphp5-Request.php-6
- [李景山php]每天TP5-20170129|thinkphp5-Request.php-1
- [李景山php]每天TP5-20170130|thinkphp5-Request.php-2
- [李景山php]每天TP5-20170201|thinkphp5-Request.php-4
- [李景山php]每天TP5-20170131|thinkphp5-Request.php-3
- [李景山php]每天TP5-20161224|thinkphp5-Console.php-1
- [李景山php]每天TP5-20161231|thinkphp5-Db.php
- [李景山php]每天TP5-20161220|thinkphp5-build.php
- [李景山php]每天TP5-20161226|thinkphp5-Console.php-3
- [李景山php]每天TP5-20161229|thinkphp5-Controller.php
- [李景山php]每天TP5-20161227|thinkphp5-Console.php-4
- [李景山php]每天TP5-20161228|thinkphp5-Console.php-5
- [李景山php]每天TP5-20161225|thinkphp5-Console.php-2
- [李景山php]每天TP5-20161222|thinkphp5-Cache.php