1关于TP中空操作和路由问题 <?php function test(){ $content="test demo @云峰天下"; $pattern='/@(\S+)\s/'; $content=preg_replace($pattern,'<a href="'.__APP__.'/user/index/uname/\\1">\\1</a>'); return $content; } 最近在做一个微博,有一块是微博内容@用户加链接,跳转…
空操作和空模块很有实用意义,他有些类似于PHP虚拟机自定义的404页面,利用这个机制我们可以更好的实现URL和错误页面的一些优化. 一.空模块: ​         很好理解,就是当你执行不存在模块的时候,thinkphp会自动寻找该模块,当找不到该模块的时候,Thinkphp会自动定义空模块下的index方法. <?php class EmptyControl​ler extends Controller{ public function index(){ echo '<script>…
1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Home/Main/login http://网址/index.php/Home/Main/hello  空操作 出现页面: 显示的错误信息过于详细,为安全以及优化页面起见,实行空操作 1.做一个_empty()方法.要在子类里面写,不要再父类里(推荐使用) function _empty() { ech…
命名空间:相当于一个虚拟的目录 正常管理文件使用文件夹--物理区分 TP框架的初始命名空间是:ThinkPHP\Library 在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\Library) 1.系统目录下根命名空间是ThinkPHP\Library下面的文件夹名称命名的 2.模块的根命名空间是以模块名命名的 在定义命名空间的时候需要从根写起例如:Home\Controller 例如:Think\Model 如果要使用某个类文件,引入该类命名空间的时候:使用use关键字,…
空操作是指访问不存在的路径: 解决方法:在控制其中创建 _empty方法 空控制器是指访问存在的控制器: 解决方法:创建EmptyController控制器 命名空间: 初识命名空间是Library:用\表示 初识命名空间下有两块根命名空间,1是Library下的文件夹,2是程序的模块文件夹 给类定义命名空间,否则类不能使用 在定义命名空间的时候需要从根写起例如:Home\Controller 创建类对象 $page = new \Home\FenYe\Page(10,5);…
所谓的空操作和空控制器,简而言之就是系统中不存在该方法或控制器,导致系统报错(本文版本3.2.3). 正确URL(测试环境):  http://oa.com/index.php/admin/public/login  访问如下: 一:空操作处理 修改方法为loginw时报错如下: 系统默认内置报错机制:1.用户体验差  2.严重安全隐患. 查看父类控制器文件Controller.class.php,发现如下代码: 意思是说,如果调用的方法不存在但定义了_empty()方法,就会去执行_empty…
上篇<ThinkPHP空操作和空控制器的处理>中,在处理空操作时修改了父类Controller.class.php中代码,不到万不得已不能 修改基类控制器中的原码,此时可在子类与父类之间,创建一个中间控制器CommonController.class.php通过链式继承来实现. 此时先删除先前基类Controller.class.php中定义的_empty方法,运行效果如下: 然后修改子类的继承类为CommonController即可实现空操作,如下: 运行如下: 这样就可以不修改基类,通过子…
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目) 问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费 4. 项目不能很好适应客户需求,牵一…
原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()” 用户访问一个不存在的操作—>解决:给每个控制器都定义个_empty()方法来处理 第二个解决方法:定义一个空操作 [空模块处理] 我们使用一个类,但是现在这个类还没有被include进来. 我们可以通过自动加载机制处理__autoloa…
原文:thinkPHP 空模块和空操作.前置操作和后置操作 详细介绍(十四) 本章节:介绍 TP 空模块和空操作.前置操作和后置操作 详细介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>"); } 2.空模块(EmptyAction.class.php的文件) class EmptyAction e…
在上篇随笔中我们已经知道了tp框架的四种访问方式,那么当在地址栏输入不存在的操作方法.控制器会怎么样呢? 先看一下定义: 空操作:一个对象(控制器)调用本身不存在的方法 空控制器:在实例化控制器对象的时候,没有找到指定的类 首先,在Application文件下新建Ceshi模块,并在Ceshi模块下按照Home模块建立相同的文件夹,如下图: 1)在Controller文件夹下新建Login控制器: <?php namespace Ceshi\Controller; use Think\Contr…
本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>"); } 2.空模块(EmptyAction.class.php的文件) class EmptyAction extends Action{ function index(){ //$thi…
空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. 例如,下面我们用空操作功能来实现一个城市切换的功能.我们只需要给CityAction类定义一个_empty (空操作)方法: <?php class CityAction extends Action{ public function _empty($name){ //把所有城市的操作解析到city方法 $this->city($name); }…
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INFO,PATH_INFO是什么呢?手册中提到“要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能),” , url支持path_info,不是apache要支持path_info么,度娘讲的还算清楚一点,见下文: pathinfo…
thinkphp5空控制器和空操作 一.总结 1.空控制器和空操作用:空控制器和空操作都是为了防止网站上的用户恶意输入,网站上线的话必须加上, 2.空操作:空操作就是在一般的控制器里面加上一个 _empty()方法 3.空控制器:空控制器就是新建一个名为Error的控制器,空控制器里面也要有空方法 4.thinkphp支持命令行:thinkphp支持命令行,命令行创建的控制器可以多几个方法,和路由一一对应 5.空控制器和空操作里面的操作:都是直接重定向到index页面 二.thinkphp5空控…
ThinkPHP的开发模式 tp框架有两种使用模式:开发模式(调试模式),一种是生产模式(运行模式) define('APP_DEBUG', true);  //调试模式 define('APP_DEBUG', FALSE);  //运行模式 运行模式会把很多核心文件代码缓存成" common~runtime.php"文件,把原来每次需要加载许多文件的请求现在只要请求一个缓存文件,节省了很多文件的打开,关闭的开销. 在页面的底部显示日志信息 在配置文件中,添加如下配置 配置完成后,在浏…
C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序在下次运行时可以保留上次的一些设置.同样有时我们希望修改某些设置而不需要重新编译程序,这样也可以通过修改本地配置文件达到目的.之前在网上看到过一篇文章,讲的是小程序或测试类的程序应该追求效率,相关配置完全可以硬编码到代码里,无需写到配置文件里.关于什么属于小程序并没有一个明显的界定,至于要不要写到配…
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器: 然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法: 在login.html里面写入要显示的代码: 然后再次请求: [url地址大小写…
TP框架几个重要文件:index.php,ThinkPHP.php,Library/Think/Think.class.php,Library/Think/App.class.php,conversion.php 空操作就是当用户访问不存在的方法,在控制器里声明一个_empty方法,这个方法会被自动调用,它是通过父控制Controller里的__call方法实现的. 当访问不存在的控制器的时候,要在Controller目录下新建一个Empty控制,这个控制器只需要一个_empty方法.…
一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以空操作有两种解决方案: ①     在对应的控制器里边制作一个方法,名称为”_empty”,这个控制器的空操作都会自动执行该方法.(推荐使用) function _empty() //解决方案一 { echo "网页不存在,请检查浏览器信息!"; } ②     给空操作的名称制作一个同名…
写在最开始:本教程适用于tp5路由的[强制模式+半pathinfo模式+pathinfo模式],通用. 比网上的[通过路由去控制空模块更强力.更全面]. PS:路由控制空模块缺点:仅仅在[强制模式下才生效,pathinfo模式下有错误] 1.这里只讲tp5(5.0.18)的空模块跳转,空控制器和空操作官网有. 来个正确的空模块处理吧: 首先找到think\App.php,备份,然后修改: 找到[throw new HttpException(404, 'module not exists:' .…
一,前言 一.1)以下代码是在TP3.0版本之后,URL的默认模式=>PATHINFO的前提下进行的.(通俗点,URL中index.php必须存在且正确) 代码和讲解如下: 1.空模块解决:http://localhost:8095/index.php/Home/index/index 输入http://localhost:8095/index.php/Home23/index/index  会报错,解决 ->>> 1)在公共配置文件添加: 'MODULE_ALLOW_LIST' …
一.调试模式(入口文件:index.php) define('APP_DEBUG', true);  //调试模式 define('APP_DEBUG', FALSE);  //运行模式 开启日志信息(在模块配置文件中): 二.空控制器.空操作() 当系统找不到控制器(操作)会定位到空控制器(操作):EmptyController->_empty() 三.跨控制器调用方法 1.直接实例化 2.A() $obj->display(“Manager/ManagerTest1”) //调用的是模版…
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器: 然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法: 在login.html里面写入要显示的代码: 然后再次请求: [url地址大小写…
这篇博客我主要想总结一下python中的ini文件的使用,最近在写python操作mysql数据库,那么作为测试人员测试的环境包括(测试环境,UAT环境,生产环境)每次需要连接数据库的ip,端口,都会不同,那么如何方便的来修改这些内容,就想到了配置文件,接下来我们就了解一下python中的配置文件ini吧 ini配置文件常被用作存储程序中的一些参数,通过它,可以将经常需要改变的参数保存起来 ini文件分为两个部分,一部分是section,一部分是key,value 格式就是: [section1…
在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟的就是tp 打上目录后回车,就会出来tp的主页面,如图 再随便打上一个没有的操作方法,如 打出的这个页面,暴露了很多信息,不太安全,所以我们要控制住,. 像这种操作本来没有的,叫做空操作 要改变这种,我们可以提供一种方法 从这个目录下找 可以在这个文件中查找双下划线打头的call方法 在这个位置搜到…
Thinkphp CURD操作php中实例还对象即可操作 (目录) 1.Add 1 调式程序 3 调出显示页面Trace信息 3 Dump 的含义 4 2.数据库查询 4 1.直接使用字符串进行查找 4 2.使用数组的方式进行查询 5 3.表达式的方式进行查询 5 Php中的表达式定义 6 4.区间查询 6 5.混合用法  6 6. 统计用法 7 3.更新操作 8 4.删除操作 8 1.Add $data=array( 'user_name'=>'xiaoming','nick_name'=>…
代码为C#操作xml配置文件的范例类,函数SetValue用于向配置文件写入一个值,GetValue用于根据Key获取相应值。这种方法的配置文件不需要手动创建,程序在运行后会自动处理创建。 注意:1.需要在解决方案上右键引用system.Configuration,并且要在单元头处using system.Configuration 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 public cla…
[一]概论 (1)定义 空操作指系统在找不到指定操作方法的时候.会定位到空操作方法 / 控制器来执行,利用这个机制,我们可以实现错误页面的自定义和URL的优化 (2)场景 常用于错误页面的自定义 (3)一般的系统自带的错误页面分两种 ①调试 / 开发阶段:会显示出错误信息.错误位置.当前TP版本 ②生成阶段:显示错误提示.TP版本.安全性相对于之前有所提高,但用户还是较差 (4)空操作 针对以上情况,这时便可以用空操作的机制进行错误页面美化 (5)说明------针对方法和控制器 1. 空操作方…
空控制器的概念是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController),利用这个机制我们可以用来定制错误页面和进行URL的优化. 大理石平台价格表 现在我们把前面的需求进一步,把URL由原来的 http://serverName/index.php/Home/City/shanghai/ 变成 http://serverName/index.php/Home/shanghai/ 这样更加简单的方式,如果按照传统的模式,我们必须给每个城市定义一个控制器类,然…