PHP day4 请求request参数获取和input助手函数
来源:互联网 发布:学统计跟大数据 编辑:程序博客网 时间:2024/05/17 06:01
1. 在apache 的 httpd.conf 中 更改
LoadModule rewrite_module modules/mod_rewrite.so 放开注释
再
apache的AllowOverride以及Options使用详解
通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即
<Directory />
AllowOverride None
</Directory>
在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。
而对于 URL rewrite 来说,至少需要把目录设置为
< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>
2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All
Alias /php "c:/web/php/"
<Directory "c:/web/php/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
这样通过http://localhost:8080/php/访问时,/php/和其下面的子目录将支持url rewrite
1 AuthConfig 允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile和Require
2 FileInfo 允许使用文件控制类型的指令。它们包括AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority
3 Indexes 允许使用目录控制类型的指令。它们包括AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName
4 Limit 允许使用权限控制指令。它们包括Allow Deny和Order
5 Options 允许使用控制目录特征的指令.他们包括Options 和XBitHack
Options
1 All 准许以下除MultiViews以外所有功能
2 MultiViews 允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用
3 Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择
4 IncludesNOEXEC 准许SSI,但不可使用#exec和#include功能
5 Includes 准许SSI
6 FollowSymLinks 在该目录中,服务器将跟踪符号链接。注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在<Local>;标记内设置,该选项会被忽略
7 SymLinksIfOwnerMatch 在该目录中仅仅跟踪本站点内的链接
8 ExecCGI 在该目录下准许使用CGI
2. request -->
$request->param(); 会将 get 和 post 请求参数合并,一起获取到,注意使用提取自己需要使用的参数
tp5.0用$rquest->param()获取传递过来的参数,如果参数有重复的情况会覆盖,覆盖的规则如下:pathinfo参数会覆盖post中的参数,post中的参数会覆盖get中的参数
public function index(Request $request) { echo 'admin Index index'; # 获取浏览器输入框的值 dump($request->domain()); dump($request->pathinfo()); dump($request->path()); #请求的类型 dump($request->method()); dump($request->isGet()); dump($request->isPost()); dump($request->isAjax()); #请求的参数 dump($request->get()); dump($request->param()); dump($request->post()); #session("akey","bvalue"); dump($request->session()); #cookie('email','123465@gmail.com'); dump($request->cookie()); #获取 dump($request->param('type')); dump($request->cookie('email')); #获取模块 控制器 操作 dump($request->module()); dump($request->controller()); dump($request->action()); dump($request->url()); dump($request->baseUrl()); }
3. input 助手函数的理解
例如 input('post.') 相当于 $request->post();
input('get.') 相当于 $request->get();
input('id') 相当于 $request->param(‘id’);
此时就要注意,param会合并get和post ,若请求中
get : id=11 。。。 post : id=122 。。。 则 input('id' ) 得到122
function input($key = '', $default = null, $filter = '') { if (0 === strpos($key, '?')) { $key = substr($key, 1); $has = true; } if ($pos = strpos($key, '.')) { // 指定参数来源 list($method, $key) = explode('.', $key, 2); if (!in_array($method, ['get', 'post', 'put', 'patch', 'delete', 'param', 'request', 'session', 'cookie', 'server', 'env', 'path', 'file'])) { $key = $method . '.' . $key; $method = 'param'; } } else { // 默认为自动判断 $method = 'param'; } if (isset($has)) { return request()->has($key, $method, $default); } else { return request()->$method($key, $default, $filter); } }}
4. 在phpstrom中 敲完doc后按Tab键 快速HTML模板
5 tp5 的 view
public function index() { # 默认模块的地址 app/index/view/index/index.html # (upload) app/index/view/index/upload.html # public/upload app/index/view/public/upload.html # ./123.html 因为tp是单入口文件,此时找到的是与index.php 同级的 123.html # ./ 开头 找到入口文件同级开始的模板文件// 1.使用view助手函数跳转// return view('index',[// 'email' => '123456@gmail.com'// ],[// 'STATIC'=>'将页面所有STATIC替换成当前值的替换内容'// ]);// 2.将当前类继承Controller (推荐使用这种)// 使用fetch()方法 //还可以用 $this->assign() 来传递遍历 $this->assign('assign','assign传递的内容');// return $this->fetch('index',[// 'email' => '123456@gmail.com'// ],[// 'STATIC'=>'将页面所有STATIC替换成当前值的替换内容'// ]);// 3. $->display() return $this->display('这是{$email}一个字符串',[ 'email'=> '132465@gmail.com' ]); } // 如果使用 fetch()方法是使用HTML文件来构建我们的模板, // 使用display(),直接传递字符串,来构建模板。
6. fetch()
1. $this->fetch();1) 建立模板文件
-- 建立模板文件 D:\tp5\application\index\view\test_fetch.html
2) 建立渲染测试控制器文件
-- 建立模板测试文件D:\tp5\application\index\controller\Viewtest.php
输出如下内容:
<?php
namespace app\index\controller;
use think\Controller;
class Viewtest extends Controller
{
public function test_fetch(){
return $this -> fetch();
}
}
发现跳到 方法名的 同名模板
此时fetch() 跳转到 view\test_fetch.html,
- PHP day4 请求request参数获取和input助手函数
- jsp获取Request请求参数
- 获取请求request中的参数
- request请求获取参数(post和get两种方式)
- request请求获取参数(post和get两种方式)
- AJAX POST请求中参数以form data和request payload形式在php中的获取方式
- Javascript 获取Request请求参数实现
- 从 request 中获取请求参数
- request的请求参数获取方式
- 从request中获取所有请求参数
- 通过request.getParameterMap()动态获取请求参数。
- request获取请求头和请求数据.
- php全面获取请求参数
- JS获取request参数 和改变request参数
- 严格验证获取request参数的函数。
- JavaWeb使用request对象获取请求参数值
- Spring MVC怎么获取request的请求参数
- 从request对象中获取请求json格式的参数
- A*算法
- php 通过递归 查找父集分类/子集分类
- 函数调用过程解析图
- “”和null
- 彻底搞定Thread类和Runnable接口
- PHP day4 请求request参数获取和input助手函数
- 老旧的金融机构,是时候赶赶云计算的时髦了
- gdfgfdgdf
- kryo序列化反序列化实例
- linux 从一台机器复制文件到另一台linux机器上去
- 完美的代价
- socket套接字编写多线程多进程的server和client
- App端实现免填邀请码建立上下级关系(openinstall)
- android实现透明状态栏