Feb252014
MySQL大数据量分页SQL语句优化
分页程序原理很简单,这里就不多说了,本篇文章主要说的是在数据表记录量比较大的情况下,如何将分页SQL做到更优化,让MySQL执行的更快的方法。
一般的情况下,我们的分页SQL语句是这样的:
SELECT * FROM table ORDER BY id LIMIT 1000,10;
以上SQL语句在原理上和在实际操作中是不会存在什么问题,但是当table表的数据量达到几十万以上的时候,上面的语句执行一遍,可能会要执行个十几...阅读全文
抢沙发
Feb222014
php预防XSS攻击,ajax跨域攻击的方法
对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlspecialchars,strip_tags这些函数都使用上了也不一定能保证绝对的安全。
现在有很多php开发框架都提供关于防XSS攻击的过滤方法,下面和大家分享一个预防XSS攻击和ajax跨域攻击的函数,摘自某开发框架,相比于仅仅使用内置函数应该还是够强了...阅读全文
Feb222014
thinkphp模板中判断volist循环的最后一条记录
用过smarty做过php开发的朋友应该都知道在smarty模板里面判断foreach循环是否是最后一个可以用$smarty.foreach.name.last来判断循环是否到了最后一条记录,在thinkphp中如何判断呢?在thinkphp的模板中常见的循环是volist,而volist的各种属性中并没有直接判断这个的,下面就说下在thinkphp volist中是如何判断最后一条记录的。
举例代码如下,意思自己去体会吧。
<volist name='list...阅读全文
Feb222014
smarty foreach详细说明
关于smarty foreach的知识,这里对其作用和用法做一个详细的说明。
smarty {foreach} 用于像循环访问一个数字索引数组一样循环访问一个关联数组,与仅能访问数字索引数组的{section}不同,{foreach}的语法比{section}的语法简单得多,但是作为一个折衷方案也仅能用于单个数组。每个{foreach}标记必须与关闭标记{/foreach}成对出现。
smarty foreach 有如下属性:
属性名称
Type类型
Req...阅读全文
Feb202014
jquery动画删除效果
写js的时候经常会碰到删除某个节点,用jquery处理这个事情很简单了,直接找到该节点,然后使用remove方法就行了,但为了追求用户体验,下面说一下如何将删除这个过程动态化,就是渐渐的删除,具体代码如下:
$('#phpernote').fadeOut('fast',function(){
$('#phpernote').remove()();
});
以上代码可以解释为先使用淡出效果来隐藏id=”phpernote”的DOM,待该DOM完全隐藏后...阅读全文
Feb182014
php生成word文档
利用php生成word文档,生成的word文件可以用word,wps等软件打开。具体代码如下:
function word($data,$fileName=''){
if(empty($data)) return '';
$data='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">'.$data.'</html>';
if(empty($fileName)) $fileName=...阅读全文
Feb182014
thinkphp开发技巧总结
使用thinkphp做开发的过程中的一些技巧总结,以后发现了还会继续补充,也欢迎更多的朋友在下面留言补充。
(1)不要在模板中直接使用{$_GET.id}或者{$Think.get.id},因为{$_GET.id} {$Think.get.id} 这两种方式都没有任何过滤,容易被XSS。建议使用I方法,即:{:I(‘get.id’)}
(2)在thinkphp中如果需要获取数据库中某个表的字段该怎么办呢?示例如下:
$user=M('user');
...阅读全文
Feb152014
通过MySQL Slow Log来分析MySQL CPU占用高的问题
在Linux VPS系统上有时候会发现MySQL占用CPU高,导致系统的负载比较高。这种情况很可能是某个SQL语句执行的时间太长导致的。优化一下这个SQL语句或者优化一下这个SQL引用的某个表的索引一般能解决问题。但是怎么找到是哪个SQL语句的执行时间过长呢?可以通过 MySQL Slow Log 命令来查找,详解如下。
首先找到MySQL的配置文件my.cnf,根据不同版本的mysql开启慢查询的配置也不一样,下面以M...阅读全文
Feb122014
js,php正则验证是否为数字与字母的混合(6-15位)
网站用户注册的过程中经常会需要验证某些字段是不是由多少位数字和字母组成的,由于对正则不是很熟,这种东西我还是记录下来以备需要的时候拿来用一下吧。
php验证字段必须为6-15位的字母和数字组合
if(!preg_match("/^[a-z\d]{6,15}$/i",$variable)){
echo '密码必须为6-15位的数字和字母的组合';
}
js验证字段必须为6-12位的字母和数字组合
var reg=/^[A-Za-z0-9]+$/;
if(!reg.t...阅读全文
Feb112014
call_user_func函数和call_user_func_array函数解析
今天偶然的情况下在CodeIgniter的官方文档中再次看到了php中的call_user_func_array()这个函数,去年也在discuz论坛的代码中也有遇到过,今天在网上查了一下这个函数的用法,下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数和func_num_args()函数的用法说明。
call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种...阅读全文