thinkPHP5.0.22初体验---路由,url访问
“豪情卷起万重浪,吼吼哈哈~”一学thinkPHP才知道这是个国内研究的php web开发框架,瞬间自豪感如电流一般传遍全身
这就不多不说说
一.控制器
所谓MVC编程,无外乎函数(sometimes类结构),模板,输出处理结果,接收处理请求,模型----说白了就是利用web框架预定义的类,去创建数据库表结构
那么thinkPHP的项目结构如下:
其中public文件夹下的index.php我们不妨理解为网站程序的主入口,他对应的启动了thinkphp内置的一段网站欢迎程序;但public文件夹下的index.php并不用来构建功能页面(或者是我们所说的html代码),他只负责传递请求(不妨看作是一个分发程序),真正接受请求的是index文件夹下的controller文件夹下的Index.php!!!再根据请求的类型来调用Index.php(当然是controller文件夹下的)中的具体功能函数
namespace app\index\controller;
use think\Controller;
use think\Request; /**
* @property request
*/
class Index extends Controller
{
public function index()
{
return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor:
pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei";
color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;">
<h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">
[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript"
src="https://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ad_bd568ce7058a1091"></think>';
} public function sniffsocks()
{
print_r($this->request->param());
exit;
}
public function xinlihua($say)
{
echo $say;
} public function iwant()
{
echo "晚上想跟小松鼠学学散打";
} }
#配置: /etc/hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.olddream.com
在地址栏中输入:http://www.olddream.com/index.php/index/Index/iwant
返回结果:
绑定参数的url路径访问方法
#以thinkphp5..23为例创建新模块 在项目目录下运行 运行命令行命令 php think build --module tianheiwadi
//url中省略index.php的访问方式
在httpd.conf中作出如下配置 1.加载rewrite模块 LoadModule rewrite_module modules/mod_rewrite.so 2.在网站virtualhost中添加<Directory></Directory>并设定AllowOverride参数值为All
原函数和访问效果
//一种继续简化url的方式,我们谓之路由
找到项目application文件夹下的config.php,找到'url_route_must'设置为true
//编写视图函数
//找到application下的route.php
'wenwadi' => 'tianheiwadi/Obscene/wenheisi'这段是朕添加的
访问结果:
//带参数的路由,依然在route.php中设定
'tianwadi/:name' => 'tianheiwadi/Obscene/checkinfo'
//函数如下
public function checkinfo($name)
{
switch ($name)
{
case $name=="cpc":
echo "大家好,我是陈培昌,今年21,快来找我学习站立式格斗吧";
break;
case $name=="xxd":
echo "诶~姑娘和小伙子们,mma训练结束后请我吃大肉";
break;
default:
echo "欢迎来到帅厉猴儿的搏击私房菜";
}
}
效果:
可以看到。在启用了路由简化参数后。直接就是域名加上路由别名和参数访问
thinkPHP5.0.22初体验---路由,url访问的更多相关文章
- thinkPHP5.0.22初体验---request相关用法
如果浏览器要返回美观排列的json数据,可以安装火狐浏览器的插件 返回XML的数据格式 渲染模板的用法 return $this->fetch('index/index2')效果 扒掉stirp ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- thinkphp5.0.22远程代码执行漏洞分析及复现
虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...
- Django3.0 异步通信初体验
此前博主曾经写过一篇博文,介绍了Django3.0的新特性,其中最主要的就是加入对ASGI的支持,实现全双工的异步通信. 2019年12月2日,Django终于正式发布了3.0版本.怀着无比的期待,我 ...
- Django3.0 异步通信初体验(小结)
2019年12月2日,Django终于正式发布了3.0版本.怀着无比的期待,我们来尝试一下吧! (附ASGI官方文档地址:https://asgi.readthedocs.io/en/latest/e ...
- PHP Slim 框架初体验之无法访问控制器
话不多说,先把报错贴出来: 刚开始用slim框架,在设置完自动加载文件和路由文件之后,我写了一个控制器: <?php use \Psr\Http\Message\ServerRequestInt ...
- Spark2.1.0——Spark初体验
学习一个工具的最好途径,就是使用它.这就好比<极品飞车>玩得好的同学,未必真的会开车,要学习车的驾驶技能,就必须用手触摸方向盘.用脚感受刹车与油门的力道.在IT领域,在深入了解一个系统的原 ...
- beego 初体验 - 路由
beego 的路由系统写的很精简 直接将 url 和要映射的 controller 类关联起来就OK: 然后再放一张 login 的 controller 实现,刚好展示下同一个 url 映射到不同方 ...
- selenium 3.0 beta2 初体验
经过漫长的等待,终于迎来了selenium 3.0 从selenium 1.0 至今,差不多有十多年的历史.这个月终于迎来了selenium3.0 那么selenium3.0 为我们带来了什么? 看一 ...
随机推荐
- Redis高级主题
Redis高级主题 持久化 Redis 支持持久化, 其持久化数据有两种方式. 两种可以同时使用. 如果同时使用, Reids 在重启时将使用 AOF 方式来还原数据. RDB 按照一定策略定时同 ...
- 登录进入Mysql数据库的几种方式
前提:连接进入mysql数据库 本机安装的myslq基础信息: host= "localhost", # 数据库主机地址:127.0.0.1 port=3306, # 端口号 us ...
- [转] DLL加载方式
静态加载: 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib ...
- c++ 读入优化通用模板
struct ioss { #define endl '\n' ; char obuf[LEN], *oh = obuf; std::streambuf *fb; ioss() { ios::sync ...
- 浅谈Linux kill命令
傻瓜常规篇: 首先,用ps查看进程,方法如下: $ ps -ef ……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx ...
- 设计模式:备忘录模式(Memento)
个人比较喜欢玩单机游戏,什么仙剑.古剑.鬼泣.使命召唤.三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好.场面大.爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的 ...
- FFmpeg4.0笔记:VS2019编译FFmpeg4.0源码
0.下载TDM.msys和yasm 1.安装TDM-GCC-64 2.安装msys到TDM-GCC的安装目录中 3.将call "C:\Program Files (x86)\Microso ...
- jmeter 获取图形验证码接口测试
今天开发提测了一个图形验证码的接口,以前没有测过这个,上来有点懵..... 记录一下. 使用jmeter配置好接口和参数,运行后查看结果树,显示都是乱码 解决方法: 添加一个后置处理器--beansh ...
- ps -ef
status, msg = commands.getstatusoutput("ps -ef | grep start.sh | grep -Fv grep | awk '{print $1 ...
- node-images Windows 64-bit with Unsupported runtime 错误解决办法 及 node 历史版本下载
在做项目的时候下载的最新的10.16[2019.6.12]版本,出现了模块不兼容的问题[node-images]. 在git上发现了相同问题 https://github.com/zhangyuanw ...