thinkphp使用了同意文件入口,我们对该网站的所有请求都会经过该入口文件,然后tp会分析URL中的参数的含义,然后解析当前请求的模块和操作。

  tp会分析URL,然后根据该URL找到相应的Controller的响应方法

  thinkphp的四种url模式

1:普通模式

2:PATHINFO模式:默认模式

3:REWRITE模式:重写模式

4:兼容模式

*******PATHINFO模式:默认模式********

他的特点:url中分隔符比较统一,便于搜索引擎抓取页面。

  url:localhost:8080/demo/index.php/Home/Index/xin,index.php 是它的入口文件,其后的第一个参数表示模块,第二个表示控制器,第三个表示方法名

  下面我们修改该模块的默认的分隔符,我们可以在Application目录下的Common下的Conf下

的config.php 文件中添加如下一项:

<?php

return array(

  //修改默认的url分隔符

  ‘URL_PATHINFO_DEPR’=>'-',

);

?>

那么当我们输入

localhost:8080/demo/index.php/HOME-INdex-xin

就相当于我们刚刚输入的

localhost:8080/demo/index.php/HOME/INdex/xin

其他URL模式:

1:所谓的普通模式,就是我们最原始的是用?和& 以及=来传值的模式,不建议使用

2:所谓的重写模式,比如我们需要用如下网址访问

http://www.5idev.com/index.php/Index/insert

但开启重写模式后,就可以用下面的方式直接访问

http://www.5idev.com/Index/insert

更改 Apache httpd.conf 配置文件

一、加载了 mod_rewrite.so

 确认加载了 mod_rewrite.so 模块(将如下配置前的 # 号去掉):

LoadModule rewrite_module modules/mod_rewrite.so

二.在省略掉inde.php的同一级目录下添加一个.htaccess 文件

内容为下:
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

三:

  AllowOverride none 要改成all

四:注意改完后要重启apache

参考网址:

http://sjolzy.cn/ThinkPHP-remove-the-indexphp-url.html

http://www.myexception.cn/h/937874.html

url配置参考手册:

http://doc.thinkphp.cn/manual/url_mode.html

********来自tp的配置*********

我们可以在thinkphp的conf目录下发现convention.php

url 配置:

'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写
'URL_MODEL' => 1, // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 默认为PATHINFO 模式
'URL_PATHINFO_DEPR' => '/', // PATHINFO模式下,各参数之间的分割符号
'URL_PATHINFO_FETCH' => 'ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL', // 用于兼容判断PATH_INFO 参数的SERVER替代变量列表
'URL_REQUEST_URI' => 'REQUEST_URI',//获取当前页面地址的系统变量

*********控制器*************

1:我们新建一个自己的控制器,取名为:xinController.class.php

2:xin 是我们起的控制器名,这里的controller这个后缀是必须加的,他用于tp系统 查找该控制器,否则tp系统无法寻找他,而后面的.class.php 则说明该php文件是一个类文件

3:其实这个控制器的实现方式,仍然可以在里面使用echo或者var_dump 等输出函数,当然它也可以调用模板

范例:

<?php
namespace Home\Controller;
use Think\Controller;
class XinController extends Controller{
public function index(){
$this->show('这是我的天下,我怕谁');
}
public function show($name,$age){
var_dump($_GET);
echo "我叫:$name","年龄:$age";
}
}

?>

在浏览器上输入:localhost:8080/demo/Home/Xin/show/name/张三/age/21

效果为:

第三节:使用模板

*************模板位置******************

Application目录下的Home文件夹下的View文件夹

**************配置文件*************

在thinkphp目录下的config目录下的convention.php文件,针对文本的配置项

TMPL_CONTENT_TYPE' => 'text/html', // 默认模板输出类型
'TMPL_ACTION_ERROR' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默认错误跳转对应的模板文件
'TMPL_ACTION_SUCCESS' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默认成功跳转对应的模板文件
'TMPL_EXCEPTION_FILE' => THINK_PATH.'Tpl/think_exception.tpl',// 异常页面的模板文件
'TMPL_DETECT_THEME' => false, // 自动侦测模板主题
'TMPL_TEMPLATE_SUFFIX' => '.html', // 默认模板文件后缀
'TMPL_FILE_DEPR' => '/', //模板文件CONTROLLER_NAME与ACTION_NAME之间的分割符
// 布局设置
'TMPL_ENGINE_TYPE' => 'Think', // 默认模板引擎 以下设置仅对使用Think模板引擎有效
'TMPL_CACHFILE_SUFFIX' => '.php', // 默认模板缓存后缀
'TMPL_DENY_FUNC_LIST' => 'echo,exit', // 模板引擎禁用函数
'TMPL_DENY_PHP' => false, // 默认模板引擎是否禁用PHP原生代码
'TMPL_L_DELIM' => '{', // 模板引擎普通标签开始标记
'TMPL_R_DELIM' => '}', // 模板引擎普通标签结束标记
'TMPL_VAR_IDENTIFY' => 'array', // 模板变量识别。留空自动判断,参数为'obj'则表示对象
'TMPL_STRIP_SPACE' => true, // 是否去除模板文件里面的html空格与换行
'TMPL_CACHE_ON' => true, // 是否开启模板编译缓存,设为false则每次都会重新编译

****************创建一个模板并显示**************

在application->Home->View 写一个index.html

<html>

<head>

<title>hello {$name}</title>

</head>

<body>

HELLO,{$name}
</body>

</html>

注意:{$name}之间不要加任何空格,否则会解析错误

然后再Application->Home->StarController.class.php文件

<?php
namespace Home\Controller;
use Think\Controller;
class StarController extends Controller{
public function index(){
$this->assign("name","yanran");
$this->display();
}
}

?>

最后在浏览器中输入地址:localhost:8080/demo/index.php/Home/star/index

********模板的一些语法********

1:对于数组,我们在控制器和模板中的写法如下:

//在控制器中

$data['name']='yanran';

$data['age']='21';

$this->assign('data',$data);

//在模板中

{$data.name}

{$data.age}

或者说

{$data['name']}

{$data['age']}

例如:

starController.class.php

index.html

结果显示:

2:对于对象,

//对象的第一种写法

{$data:name}

{$data:age}

//对象的第二种写法

{$data->name}

{$data->age}

3:循环表示:

  foreach或者volist

<foreach name="list" item="vo">

{$key}|{$vo.id}:{$vo.name}

</foreach>

其中:name 表示数据源,而item表示循环变量 ,$key表示索引,即输出到了第几个

范例:

在view->star 下,新建一个show.html

预览效果得到:

转载于:https://www.cnblogs.com/yanran/p/4925152.html

thinkphp 第二节相关推荐

  1. 第二节认识计算机教案,第二章 第二节 局域网的构建 教学设计_博客

    <第二章 第二节 局域网的构建 教学设计_博客>由会员分享,可在线阅读,更多相关<第二章 第二节 局域网的构建 教学设计_博客(3页珍藏版)>请在装配图网上搜索. 1.第二章 ...

  2. 【v2.x OGE-example 第二章(第二节) 修改器的使用】

    2019独角兽企业重金招聘Python工程师标准>>> [v2.x OGE-example 第二章(第二节) 修改器的使用] 1. 位置:Modifier_example --> ...

  3. SQL Server性能调优之执行计划深度剖析 第二节 执行计划第一次实践

    SQL Server性能调优之执行计划深度剖析 第二节 执行计划第一次实践 前言:自从上一篇文章发出之后,收到了很朋友的关注.很多朋友要求多多实践,而不是纯粹的理论.确实,从打算出这个系列开始,我就本 ...

  4. 工程项目管理丁士昭第二版_2021年软考系统集成项目管理工程师知识点预习第十四章第二节...

    听说99%的同学都来这里充电吖 为了方便大家尽早投入2021年的软考考试备考中,我们已开始连载<系统集成项目管理工程师>知识点,今天带来的是 第十四章 第二节 编制询价~ 知识点:第十四章 ...

  5. 第二节 RabbitMQ配置

    第二节 RabbitMQ配置 原文:第二节 RabbitMQ配置 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/detail ...

  6. Simulink仿真 第二节 输入输出和子系统

    第二节 输入输出和子系统 可将某一功能创建成为一个子系统,如下图所示:第一张图为完整图,第二张图为创建了子系统的图,两张图的功能一模一样. 双击子系统显示为下图所示 第三节 Groud(接地)模块和T ...

  7. 程序员编程艺术第一章(第二节)

    第二节:两指针逐步翻转 思路: abc defghi,要 abc 移动至最后 abc defghi->def abcghi->def ghiabc 定义俩指针, p1 指向 ch[0], ...

  8. 第二章 第二节 安装Eclipse

    第二节  安装Eclipse 返回目录 Eclipse.org站点提供整个Eclipse系统的下载,包括SWT和JFace.下载主站是http://www.eclipse.org/downloads. ...

  9. 初等数学O 集合论基础 第二节 映射与集合的势

    初等数学O 集合论基础 第二节 映射与集合的势 这一节的目标是基于映射建立比较集合"大小"的工具--集合的势(cardinality),也被称为集合的基数,这个工具是自然数的基数理 ...

最新文章

  1. 常见的函数式编程模型
  2. 阶乘分解质因数[经典题组合数学枚举质因子]
  3. android fragment 退出程序,android – 应用程序在Fragment中单击后退按钮后关闭
  4. android double精度_Android车辆运动轨迹平滑移动(高仿滴滴打车)最佳实践
  5. java 开源记账_生鲜配送系统ERP(JAVA开源版)-水产记账ipad
  6. Go 指针,标识符命名规范及关键字
  7. 方法 手写promise_高级前端养成37js专精06之手写promise(上)
  8. qt中判断对象是否为空的方式
  9. php mailer altbody,PHPMailer发送邮件中文乱码的解决办法
  10. python基础小白题2
  11. 为什么普通红包自己不能领_为什么窗帘不能用洗衣机洗呢?千万别让窗帘砸在自己手里!...
  12. nginx 优化(收藏)
  13. 概率图模型-贝叶斯网络
  14. 阿里云短信接口实现模板
  15. 域名被抢注了怎么办?
  16. win7旗舰版安装vs2005
  17. php 删除文件 unlink,如何使用php unlink删除文件
  18. 移动端适配 postcss-pxtorem插件使用
  19. 骚扰电话不胜其烦 防止隐私泄露只能靠网友不满?
  20. Git 忽略某些文件,忽略已提交的文件记录,Git 不追踪变更

热门文章

  1. 《糖豆人:终极淘汰赛》:如何打造最难关卡「水涨爬高」
  2. 虚幻引擎发布4.8版,支持VR虚拟设备
  3. H5版定点投篮游戏编程设计--物理模型抽象
  4. 2021年四季度企业薪酬报告发布 38个核心城市平均薪酬首次超万
  5. PHP生成验证码图片
  6. centos6 图形界面root免密直接登录问题
  7. Django系列目录
  8. Spark 编程模型(上)
  9. axis2 调用webservice
  10. js中的scroll和offset 的使用比较