1、如何开启调试模式,开启调试模式有什么用处?

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);

  开启调试模式的用处:方便及时发现隐患问题和分析、解决问题。

2.如何定义空空控制器和空操作?

  空操作:

<?php
namespace Home\Controller;
use Think\Controller;
class CityController extends Controller{
public function _empty($name){
//把所有城市的操作解析到city方法
$this->city($name);
}
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name这个城市相关的处理
echo '当前城市' . $name;
}

  空控制器:

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller{
public function index(){
//根据当前控制器名来判断要执行那个城市的操作
$cityName = CONTROLLER_NAME;
$this->city($cityName); }
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name这个城市相关的处理
echo '当前城市' . $name;
}
}

3、控制器的参数的前置和后置操作如何定义?

  前置操作:_before_操作名           后置操作:_after_操作名

  例子:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
  //前置操作方法
public function _before_index(){
echo 'before<br/>';
}
public function index(){
echo 'index<br/>';
}
//后置操作方法
  public function _after_index(){
echo 'after<br/>';
}
}

4.请写出自动验证的规则,要求在修改和新增时都校验密码字段(pwd)的规则并且不管是否为空都要进行校验,规则为:密码要含有大小写字母和数字并且长度要至少为6位;

protected $_validate=array(
array('password','require','密码不能为空!'),
array('password','/^[a-zA-Z0-9]{6}$/','密码不能小于六位!',0,'regex',3),
)

5.3种查询方式和8种查询方法都是什么?

  3种查询方式:字符串、数组、对象

  8种查询方法:表达式查询、快捷查询、区间查询、组合查询、统计查询、子查询、SQL查询、动态查询

6.请写出一个组合查询中复合查询的示例代码;

$where['name']  = array('like', '%thinkphp%');
$where['title'] = array('like','%thinkphp%');
$where['_logic'] = 'or';
$map['_complex'] = $where;
$map['id'] = array('gt',1);

7、请写出连贯操作中可以重复调用的操作;

  where       用于查询或者更新条件的定义      字符串、数组和对象

  join           用于对查询的join支持                   字符串和数组

    union        用于对查询的union支持               字符串、数组和对象

    scope       用于命名范围                                字符串、数组

bind         用于数据绑定操作                         数组或多个参数

8.自动加载的原理;

  通过类的命名空间自动定位到类库文件

9.I方法常用的两种过滤规则并说明其含义;

  1.htmlspecialchars:把一些预定义的字符转换为 HTML 实体.

  使用语法:string:必需。规定要转换的字符串

          quotestyle:可选。规定如何编码单引号和双引号。

       character-set:可选,字符串值,规定要使用的字符集。

htmlspecialchars(string,quotestyle,character-set)

 

  例子:

  2.strip_tags:剥去 HTML、XML 以及 PHP 的标签。

     语法:strip_tags(string,allow)

        string:必需。规定要检查的字符串。

        allow:可选。规定允许的标签。这些标签不会被删除。

     例子:

<?php
echo strip_tags("Hello <b><i>world!</i></b>");
?>

  输出:Hello world!

  模型中写入的过滤方法:

  1. $this->data($data)->filter('strip_tags')->add();

10.模版赋值的两种参数规则;

  字符串:$this-assign('show',$show);

  数组:$this-assign($arr);

11.如何修改模版标签的定界符?

'TMPL_L_DELIM'    =>    '<{',
'TMPL_R_DELIM' => '>}'

12.模版变量在模版中输出,字符串、数组、对象都如何输出;

  字符串:<{$name}>

  数组:<{$data['name']}>

  对象:<{$data:name}>  或  <{$data->name}>

13.如何开启批量验证;

  protected  $patchValidate = true;

14.控制器中如何获取模型类错误信息?

  D('表名')->getError();

15.如何有效的防止SQL注入

  1.查询条件尽量使用数组方式,这是更为安全的方式;

  2.如果不得已必须使用字符串查询条件,使用预处理机制;

  3.使用自动验证和自动完成机制进行针对应用的自定义过滤;

  4.如果环境允许,尽量使用PDO方式,并使用参数绑定

  查询条件预处理:

  1. Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
  2. $Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

16.GD库是什么?

  是php处理图形的扩展库

ThinkPHP3.2基础知识(三)的更多相关文章

  1. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  2. Python基础知识(三)

    Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...

  3. C# 基础知识 (三).主子对话框数值传递

    在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗 ...

  4. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  5. Dapper基础知识三

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. Dapper,当项目在开发的时候,在没有必要使用依赖注入的时候,如何做 ...

  6. ThinkPHP3.2基础知识(二)

    1.单入口模式的好处: 安全,灵活.可集中进行安全处理,访问统计等统一控制. 2.入口文件中为什么要判断PHP版本,TP要求PHP的版本是什么? 因为ThinkPHP3.2版本只能在PHP版本5.3. ...

  7. Java的基础知识三

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  8. Go语言核心36讲(Go语言基础知识三)--学习笔记

    03 | 库源码文件 在我的定义中,库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话). 这里的"其他代码" ...

  9. 3. K线基础知识三

    1. 阴线 证券市场上指开盘价高于收盘价的K线,K线图上一般用淡蓝色标注,表示股价下跌,当收盘价低于开盘价,也就是股价走势呈下降趋势时,我们称这种形态的K线为阴线. 中间部分实体为蓝色,此时,上影线的 ...

随机推荐

  1. Linux下防火墙配置

    查看防火墙的状态:/etc/init.d/iptables  status  或  service  iptables  status 1) 临时生效,重启后复原 开启: service  iptab ...

  2. 安装两个JDK后配置环境变量没用?

    在实际开发中,由于项目的需要,可能JDK的版本是不同的.比如我们前一个项目所需JDK版本是1.6的,项目完成后,下一个项目JDK版本又是需要1.7的,为了防止由于切换项目我们需要频繁的安装卸载JDK, ...

  3. volatile关键字的特性总结

    当一个变量定义为volatile后,它将具备两个特性: 1.保证此变量对所有线程的可见性,所谓"可见性",,是指当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的. ...

  4. 转: 谈JAVA_OPTS环境变量不起作用

    谈JAVA_OPTS环境变量不起作用 2016-6-14 11:12 最近在处理运行一个java应用时,老是出现java.lang.OutOfMemoryError: Java heap space. ...

  5. Python新手需要掌握的知识点

    一.基础语法 1 变量 2 逻辑判断 3 循环 4 函数 二.数据结构 1 数字(加减乘除) 2 字符串(一串字符) 3 布尔 (真假) 4 元组 (不能修改的列表) 5 列表(Python的苦力,最 ...

  6. Linux下设置SSH端口

    SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话 ...

  7. ActiveMQ进阶学习

    本文主要讲述ActiveMQ与spring整合的方案.介绍知识点包括spring,jms,activemq基于配置文件模式管理消息,消息监听器类型,消息转换类介绍,spring对JMS事物管理. 1. ...

  8. iOS QQ分享图片无反应问题

    受iOS 9 上 http 限制 需要在info.plist文件添加必要string <key>LSApplicationQueriesSchemes</key> <ar ...

  9. 牛客网linux试题-错误整理-20170914

    Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性. 1.交互进程--由一个shell启动的进程.交互进程既可以在前台运行,也可以在后台运行. 2.批处理进程--这种进程和终端没有 ...

  10. 【转】如何将qlv格式的腾讯视频转换为mp4格式

    一般来说,每个视频网站都会有自己的视频播放格式,如优酷的KUX.爱奇艺的QSV和腾讯的QLV等.但是大家知道,优酷是有转码功能的,而就目前来说腾讯视频还没有转码功能,这就给大家造成了一定的困扰.这里呢 ...