ThinkPHP - I 函数】的更多相关文章

ThinkPHP函数详解:I方法   浏览:144722 发布日期:2013/06/01 分类:文档教程 关键字: 函数 ThinkPHP的I方法是3.1.3版本新增的,如果你是之前的3.*版本的话,可以直接参考使用3.1快速入门教程系列的变量部分. 概述 正如你所见到的一样,I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下: I('变量类型.变量名',['默认值'],['过滤方法'])…
在写一个php原生函数的时候,想起使用thinkphp的C函数读取数据库配置非常方便,于是看了看源码的实现,原理很简单,分享一下: 下面是common.php,实现了C函数: if(is_file("config.php") ) { // config.php文件返回一个数组 // C函数判断是一个数组,则会将这个数组赋值给 $_config,下面我们用在这个变量里面读取配置 C(include 'config.php'); } // 获取配置值 function C($name=nu…
M函数 TP的Model父类,封装的功能比较多,增删改查操作都具备.一些表,比如留言表,comment class CommentModel extends Model { } M('comment') 的作用就是得到父类Model的对象,且把Model的表名---指向-->comment D函数 D函数也可以实例化Model, 优先实例自定义的子类Model,如果子类Model不存在,则功能等同于M()的函数.如果有自定义的类,也可以用D()来导入 例如 $a = new \Home\Mode…
thinkphp 的项目中指定了common/function.php的函数是公用函数. 不但php页面可以使用,模板文件也可以使用:…
如何判断一个更新操作是否成功: $Model = D('Blog'); $data['id'] = 10; $data['name'] = 'update name'; $result = $Model->save($data); if ( false !== $result ){ $this->success('更新成功!'); }else{ $this->error('更新失败!'); } 需要用 !== false 来判断更新是否成功,因为save方法返回值是更新操作影响的记录数,…
模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认定义是Model),例如: 模型名 约定对应数据表(假设数据库的前缀定义是 think_) UserModel think_user UserTypeModel think_user_type 如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表. M函数在模型命名规则限制下M('UserType')获取的对应数据表是 '前缀_User_Type…
Html代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8" /> <title>修改验证码配置文件</title> <link rel="stylesheet" href="__PUBLIC__/Css/Public.css"> </head> &…
16个快捷函数用法 1.A() 实例化控制器  格式:[资源://][模块/]控制器A($name,$layer='',$level='')@param string $name 资源地址   @param string $layer 控制层名称   @param integer $level 控制器层次   @return Controller|false 2.B() 执行某个行为B($name,$tag='',&$params=NULL)@param string $name 行为名称  …
tp3 C($name=null, $value=null,$default=null) 获取和设置配置参数 支持批量定义 load_config($file,$parse=CONF_PARSE) 加载配置文件 支持格式转换 仅支持一级配置 yaml_parse_file($file) 解析yaml文件返回一个数组 E($msg, $code=0) 抛出异常处理 G($start,$end='',$dec=4) 记录和统计时间(微秒)和内存使用情况 L($name=null, $value=nu…
我们往往需要对模板输出变量使用函数,可以使用: 大理石平台支架 {$data.name|md5} 编译后的结果是: <?php echo (md5($data['name'])); ?> 如果函数有多个参数需要调用,则使用: {$create_time|date="y-m-d",###} 表示date函数传入两个参数,每个参数用逗号分割,这里第一个参数是y-m-d,第二个参数是前面要输出的create_time变量,因为该变量是第二个参数,因此需要用###标识变量位置,编译…
1,定义为Common.php文件.自动加载. 2,配置文件config.php文件里配置'LOAD_EXT_FILE'=>'function'.则会自动加载function.php文件 3,使用load('@.function'); 则会临时性加载function.php文件.…
# Thinkphp ## 什么是框架?(框架开发)> 框架就是通过提供一个开发Web程序的基本框架(比如提供了分页类.数据库操作类.文件操作类等),使用框架可以减少开发者代码的编写.> 简单理解就是别人写好了很多东西,我们直接拿过来用.最后拼凑成一个项目(可以是商城.论坛等) . ## 什么是二次开发* 所谓二次开发就是在现有的软件上进行定制修改,功能的拓展,然后达到自己想要的功能,一般来说都不会改变原有项目的主要内容. ### 商城二次开发框架* ecshop* shopnc* ecmal…
一些函数 1.  set_include_path().get_include_path() .PATH_SEPARATOR 设置php加载的路径 2.  register_shutdown_function() 程序执行完,最后执行的代码 3.  set_error_handler().set_exception_handler() 4.  get_defined_constants()已定义的所有的变量 thinkphp自定义函数总结 1.  require_cache 优化过的requir…
ThinkCMF变量输出+使用函数的方式同ThinkPHP. ThinkPHP变量输出: 在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值: $name = 'ThinkPHP'; $this->assign('name',$name); $this->display(); 然后就可以在模板中使用: Hello,{$name}! 模板编译后的结果就是: Hello,<?php echo($name);?>! 这样,运行的时候就会在模板中显示: Hello,Think…
原文:ThinkPHP的缓存技术 如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷.假如我们 把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层.如果没有缓存层,访问层是直接从数据库存取层读取数据,而设置缓存 后,访问层不再是直接在数据库存取层读取,而是从缓存层读取数据.我们做个简单的对比,假设一个页面,在一个小时可被访问100万次,如 果这个页面每次被访问的时候,都直接读取数据库后再编译生成,…
前段时间用Apache配合TP开发了一个小型网站,也算是我使用TP的第一次实战.我习惯使用pathinfo模式,本地运行一切正常,然而部署到服务器上时,由于对方使用的是Nginx,默认是不支持ThinkPHP的pathinfo模式,所以导致路径错误,出现了页面循环跳转的问题,于是就把nginx下载下来在本地亲自测试. 其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo.为了使问题简单化,我选择…
1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用主函数SyntaxHighlighter.all(); <css file="__PUBLIC__/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css" /> <js file="__PUBLIC__/…
如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层,如果没有缓存层,访问层是直接从数据库存取层读取数据,而设置缓存后,访问层不再是直接在数据库存取层读取,而是从缓存层读取数据. 我们做个简单的对比,假设一个页面,在一个小时可被访问100万次,如果这个页面每次被访问的时候,都直接读取数据库后再编译生成,在一个小时内将会重复性的生成100万次…
在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支持pathinfo. 为了使问题简单化,我选择了第一种方式.由于就另外一种方式,我查了非常多资料,发现大家的方法不尽同样.有的还区别非常大,easy造成误导,所以我选择从简出发,选择普通模式.尽管有一定的风险.当把index.php相应的前台代码改动完成之后.发现前台基本正常.但是后台仍然出现重定向…
ThinkPHP的函数扩展:为了更好的在前台模板中显示变量,例如,商品分类中,分类名称之间的缩进.此时,在APP/Common/Common文件夹下(APP为新建的应用目录),新建一个php文件,如:function.php,书写代码如下:<?php//自定义函数库//自定义一个输出商品类别前修饰函数function outTypeInfo($path){    //获取参数中,号的次数    $m = substr_count($path,",")-1;    return s…
目录 1.ThinkPHP项目结构 2.ThinkPHP运行流程 3.ThinkPHP配置文件 4.ThinkPHP四种URL模式 5.ThinkPHP用户自定义函数 6.ThinkPHP模板展示及变量赋值 7.ThinkPHP模板引擎--循环 8.ThinkPHP模板引擎--判断 1.ThinkPHP项目结构 |ThinkPHP |--App  用户文件 |--Common    存放当前项目的公告函数 |--Conf   项目的配置文件 |--Lang   项目的语言包 |--Lib    …
[一]准备工作 (1)创建数据表 表名:sp_doc create table sp_doc( id int(11) not null auto_increment, title varchar(50) not null comment'公文标题', filepath varchar(255) default null comment'附件存储路径', filename varchar(255) default null comment'附件原名', hasfile smallint(1) de…
原出处:https://www.freebuf.com/vuls/217586.html 0x00 简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建. ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展. 每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作.在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身…
一.背景 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建. ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展. 每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作.在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本. 官网:http://www.thinkcmf.com…
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")){ $slice= mb_substr($str, $start, $length, $charset); }el…
Thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便.调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用. 比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写: {$vo.title|msubstr=0,5,’utf-8′,false} 至于{$vo.title}这个大家肯定不陌生了.就说说后边的函数msubstr吧.它代表的意思是截取字符串$vo.title,从0个字符开始截 取,截取5个字符.使用的…
1.Thinkphp 模板中直接对数据处理:{$data.name|substr=0,3} 2.中文字符串截取函数:mb_substr=0,14,'utf-8' 3.中文字符串统计:iconv_strlen(字符串,"UTF-8") <div style="margin-bottom: 8px;"> <a href="#" target="_blank" class="my_a" >…
ThinkPHP 是国内比较优秀的 PHP 框架,但有些地方不是很好,比如那些 魔术函数 D(),用它返回的类实例,在各个IDE(如 PhpStorm)下根本识别不了,导致如下问题: 1.不支持 代码自动提示: 2.不支持 按住 Ctrl 键,点击 方法名,进入 方法的 定义处: 3.不支持 重构: 4.不支持 方法被使用/调用 统计: 等等问题: 总而言之,强大的IDE(PhpStorm)拿它一点办法都没有. 于是,越来越讨厌这样的 D()函数,,,改造一下它吧,操作过程如下: 1.新建 Ba…
方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php),即默认的公共函数文件为 ./Application/Common/Common/function.php. 例如,在 ./Application/Common/Common 下新建 function.php,…