本文共 5382 字,大约阅读时间需要 17 分钟。
1. 在apache 的 httpd.conf 中 更改
LoadModule rewrite_module modules/mod_rewrite.so 放开注释
再
apache的AllowOverride以及Options使用详解
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,转载地址:http://welii.baihongyu.com/