Skip to content

Instantly share code, notes, and snippets.

View chzyer's full-sized avatar

ChenYe chzyer

  • China
View GitHub Profile
@chzyer
chzyer / php-timezone.md
Last active December 10, 2015 22:38
PHP时间时区问题

time()获取系统时间的时候,又会有发现有时候和电脑的时间相差8小时呢?其实这个是时区设置的问题

date_default_timezone_set('PRC');

我们只需要在PHP页面前面加上 便可将时区设置为东八区

@chzyer
chzyer / php-how-to-use-json-2.md
Last active December 10, 2015 22:38
PHP中JSON使用的方法

话说JSON真是无处不在啊,AS3用他,JS用他,PHP也可以用他,所以说,掌握JSON还是有必要的

//编码函数
json_encode()

//解码函数 
json_decode()

解码后返回的是一个对象,需要用"->"访问 可以强制转换成数组 在前面加上(array)

@chzyer
chzyer / codeigniter-template.md
Last active December 10, 2015 22:39
Codeigniter的模板函数

Codeigniter的模板函数

写策划写数据库结构写公共类写了一天,codeigniter的框架总体还不错,只是没有把htm代码和php代码分开是一大失误,框架类产品本身的价值在于统一了格式,方便统一代码而适合多人合作写代码,而php代码与htm代码分开则避免网页美工和后台程序代码堆在一起,有利于他人修改和阅读,discuz就是采用这种模式,如果要分开,必须实现htm文件能执行php代码,看上去是不可能,但其实很简单,于是,我为codeigniter写了一个template函数,思路为,先读取模板文件(htm)的内容,存入变量,用正则将特定格式的代码替换成真正的php代码,并另存为php代码文件并include进来,就是说,把我们原本应该亲手做的事推给代码做,我们只需写html代码,这个函数已写完!当然,此思路参考自discuz,哈哈­

codeigniter官方说,PHP伪代码会带来性能的下降,与CI的快捷简便原理想冲突,我想,当把template的文件有效期限设置长一点,因为本身大型的网站修改不是很频繁,

// --------------------------------------------------------------------

/**
 * 模板机制
@chzyer
chzyer / php-substr-preg.md
Last active December 10, 2015 22:38
PHP字符串截取-正则版

网页编码有多种... 导致字符串截取需要针对不同编码进行截取 以前总是用GBK,后来发现,GBK编码通用性不强,FLASH和Javascript都使用UTF8,用GBK就需要不断的转换编码,感觉挺麻烦的, 所以,以后就改用UTF8吧! SO,就只摘录了UTF8截取函数。 PS:一个UTF8字符占用3个字符...用strlen时显示的数目是预期值的3倍,切记切记!

function bsubstr($str, $len, $from = 0){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
@chzyer
chzyer / js-return-false.md
Last active December 10, 2015 22:48
关于Javascript的return false;

由于时间紧急,先进入重点

当多层DIV层叠时,如果点击重叠处,发现ONCLICK事件会穿透所有层,也就是每一层的ONCLICK事件都会执行一遍。执行的顺序跟使用JQUERY绑定ONCLICK事件的顺序无关,执行的顺序始终从最上层往下。

问题来了,当只想让最上层的DIV接受ONCLICK而下层接收不到ONCLICK该怎么办。俗称把ONCLICK事件吃掉。没想到用return false可以达到这个效果,就这样,续待....

@chzyer
chzyer / php-files-exists.md
Last active December 10, 2015 22:48
PHP的检查文件存在问题

这个问题确实折腾了我近一个小时,有必要说一说,以免以后忘了。健忘啊健忘

PHP中检查文件存在的方法有多种,一种的file_exists,还有一种是fopen

file_exists只是单纯也仅仅判断文件是否存在.仅返回布尔值

而fopen这个函数在很多编程语言里面都能遇到,直接读取文件的资源信息

我遇到的问题就是,用PDF2SWF转换文件之后,用file_exists判断文件是否存在时提示不存在,而事实上存在

@chzyer
chzyer / uploadify-simpledemo.md
Last active December 10, 2015 22:48
Uploadify即开即用DEMO

在网上找了很久都没有找到可以现套现用的DEMO,官方提供下载的ZIP里面却没有示例,无奈,只能从官网上找到DEMO,一步一步精简

<link href="uploadify/style.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="uploadify/jquery.min.js"></script>
<script type="text/javascript" src="uploadify/swfobject.js"></script>
<script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script>
<body >
<div id="basic-demo" class="demo">

<script type="text/javascript">
@chzyer
chzyer / php-header-file-type.md
Created January 10, 2013 18:38
[转] PHP分析文件头信息判断文件类型

我的话:

前阵子用PHP的上传功能貌似是能自动从文件头信息判断文件类型的而不是简单得从后缀名,因为最近在处理一个百度文库功能,需要处理上传文档功能,发现就算其他文件只要改后缀名就能伪装成文档的格式
下面是我在网上找到的所谓能判断文件类型,但是经过试验,不是很精准,因为OFFICE新出文件类型实际上是一个ZIP的压缩包,而07前版本的文件类型是srorage方式储存,可见,要实现完全正确的文件类型判断是一件很困难的事情...

PHP分析文件头信息判断文件类型

在用PHP上传文件时一般要限制可上传的文件类型,以保证系统的安全。文件类型通常通过文件的后缀进行判断,但这样只要用户把文件的后缀名修改一下就可以绕过检查而实现上传,但如果我们在判断文件名后缀的同时通过分析文件头信息判断文件类型,那些不怀好意的鸟人们再想捣乱可能就没那么简单了: 要分析文件头信息肯定要先读取文件,在PHP中,可以先用fopen()打开文件,然后通过fread()读取文件内容,不用全部读取,因为要判断文件类型我们只需要得到文件的前2个字节就足够了。得到的内容是二进制的,为了能在程序代码中做判断,需要把二进制数据转换成十进制数字的字符串,这时最关键的 unpack() 函数就派上用场了,unpack()函数主要用于二进制操作,我了解的也不多,看起来比较深奥,有时间好好研究下。 OK,还是把示例代码放上来吧:

@chzyer
chzyer / how-to-do-when-cookie-invalid.md
Last active December 10, 2015 22:48
[Idea]cookie session失效的情况下身份验证方法
@chzyer
chzyer / jquery-exec-jscode.md
Created January 10, 2013 18:46
用JQuery执行JS代码

JQ全名jquery,一个javascript的框架. JQ内部集成了一个可以执行文本形式的JS代码,但是没有在API中列出来 于是,此篇文章变为了,备忘录

var code="alert('JS代码在这里')";
jQuery.globalEval(code) //将会弹出对话框