Welcome 微信登录

首页 / 网页编程 / PHP

CI框架在CLI下执行占用内存过大问题的解决方法

CI框架在CLI下执行占用内存过大问题的解决方法

很多程序员在使用codeigniter CLI下执行一个大批量数据导入的问题时,会一直出现内存过高的情况,下面对此分析器原因及解决办法。CI db会将所有的查询sql和和sql执行时间保存下来,对于类似百万级大数据量的导入问题来说,其执行的sql记录都会被保存在内容中,这就占用了大量的内容直至脚本结束。解决办法:当你执行大数量的db操作时,记得设置:复制代码 代码如下:$this->db->save_queries = FALSE;...
smarty模板局部缓存方法使用示例

smarty模板局部缓存方法使用示例

在开启smarty缓存的情况下,第一次执行时会将其编译好的输出文件保存到cache目录中,然后在程序中通过smarty的is_cache()函数检测其 cache文件是否过期,如果过期会更新缓存,如果没有过期会自动调用cache文件,这样就省去了编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改,这里的更改是通过检测文件的最近修改时间实现的,不是通过检测模板文件内容。 防止一个模板文件的整篇都被缓存:index.php文件: 复制代码...
Smarty局部缓存的几种方法简介

Smarty局部缓存的几种方法简介

很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法:1.insert 法:Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数。比如说我们定义一个显示时间的函数:复制代码 代码如下:function insert_get_current_time() {return date("H:i:s");...
ThinkPHP令牌验证实例

ThinkPHP令牌验证实例

ThinkPHP内置了表单令牌验证功能,可以有效防止表单的远程提交等安全防护。表单令牌验证相关的配置参数有:"TOKEN_ON"=>true, // 是否开启令牌验证 "TOKEN_NAME"=>"__hash__", // 令牌验证的表单隐藏字段名称 "TOKEN_TYPE"=>"md5", //令牌哈希验证规则 默认为MD5 如果开启表单令牌验证功能,系统会自动在带有表单的模板文件里面自动生成以TOKEN_NAME为名称的隐藏域,其值...
ThinkPHP的L方法使用简介

ThinkPHP的L方法使用简介

thinkPHP的L方法用于启用多语言的情况下,设置和获取当前的语言定义。其调用格式为:L("语言变量"[,"语言值"])1.设置语言变量除了使用语言包定义语言变量之外,我们可以用L方法动态设置语言变量,例如:L("LANG_VAR","语言定义");语言定义不区分大小写,所以下面也是等效的:L("lang_var","语言定义");不过规范起见,我们建议统一采用大写定义语言变量。L方法支持批量设置语言变量,例如:$lang["lang_var1"] = ...
ThinkPHP的I方法使用详解

ThinkPHP的I方法使用详解

ThinkPHP的I方法是众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:I("变量类型.变量名",["默认值"],["过滤方法"])变量类型是指请求方式或者输入类型。各个变量类型的含义如下:变量类型含义get获取GET参数post获取POST参数param自动判断请求类型获取GET、POST或者PUT参数request获取REQUEST参数put获取PUT参数sess...
ThinkPHP Mobile使用方法简明教程

ThinkPHP Mobile使用方法简明教程

一、基础知识1.手机APP的类型移动端的应用有这几种:WebApp,NativeApp,HybridApp。WebApp 就是手机网站,需要用手机浏览器访问。NativeApp是用原生语言开发,用户需要下载安装的手机应用。 NativeApp的开发成本很高,每个平台的开发语言都不一样, 比如IOS的开发语言是object C , Android系统的APP需要用Java开发, WindowsPhone 则需要用 C# 开发。那么我们如果需要做一个多平台都能...
ThinkPHP CURD方法之where方法详解

ThinkPHP CURD方法之where方法详解

ThinkPHP CURD操作的查询方法中最常用但也是最复杂的就是where方法。where方法也属于模型类的连贯操作方法之一,主要用于查询和操作条件的设置。where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM(对象关系映射)的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。1.字符串条件使用字符串条件直接...
ThinkPHP CURD方法之limit方法详解

ThinkPHP CURD方法之limit方法详解

ThinkPHP CURD方法的limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。并且ThinkPHP的limit方法可以兼容所有的数据库驱动类。其具体用法如下:1.限制结果数量:例如获取满足要求的10个用户,如下调用即可:$User = M("User");$User->where("status=1")->field("id,name")->limit(10)->select...
ThinkPHP CURD方法之page方法详解

ThinkPHP CURD方法之page方法详解

ThinkPHP CURD方法的page方法也是模型连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法。用法我们在前面已经分析了关于limit方法用于分页查询的情况,而page方法则是更人性化的进行分页查询的方法,我们还是以文章列表分页为例来说,如果使用limit方法,我们要查询第一页和第二页(假设我们每页输出10条数据)写法如下:$Article = M("Article");$Article->limit("0,10")->sel...
ThinkPHP CURD方法之table方法详解

ThinkPHP CURD方法之table方法详解

ThinkPHP CURD方法的table方法也属于模型类的连贯操作方法之一,该方法主要用于指定操作的数据表。具体用法如下:一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:1.切换操作的数据表;2.对多表进行操作;例如:$Model->table("think_user")->where("status>1")->select();也可以在table方法中指定数据库,例如:$Mo...
ThinkPHP CURD方法之data方法详解

ThinkPHP CURD方法之data方法详解

ThinkPHP CURD方法的data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,很多开发人员却并不太习惯用这个方法,今天来讲解下如何用好data方法。具体用法如下:1.写操作通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如:$Model = D("User");$Model->create(); // 这里略过具体的自动生成和验证判断$Model->add();又或者直接对数据对...
ThinkPHP CURD方法之field方法详解

ThinkPHP CURD方法之field方法详解

ThinkPHP CURD方法的field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。1、用于查询在查询操作中field方法是使用最频繁的。$Model->field("id,title,content")->select();这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值。执行的SQL相当于:SELECT id,title,content FROM t...
PHP base64编码后解码乱码的解决办法

PHP base64编码后解码乱码的解决办法

在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的。来看看罪魁祸首是谁。嫌疑人:base64_encode 和 base64_decode罪行:我写了一个跳转和提示函数,接收提示信息后跳转到指定的页面,但是跳转提示时汉字乱码。跳转模版代码如下:复制代码 代码如下:<!DOCTYPE html><html><head><meta charset="utf-8">&l...
<< 391 392 393 394 395 396 397 398 399 400 >>