php zval类型定义

#define IS_NULL 0
#define IS_LONG 1
#define IS_DOUBLE 2
#define IS_BOOL 3
#define IS_ARRAY 4
#define IS_OBJECT 5
#define IS_STRING 6
#define IS_RESOURCE 7
#define IS_CONSTANT 8
#define IS_CONSTANT_ARRAY 9
#define IS_CALLABLE 10

WordPress 结合Memcache进行缓存加速

WordPress博客是一个非常耗费性能的博客系统,若将原版Wordpress博客系统直接用作博客站点或者门户站点,等到访问量变大之后,就会发现系统性能根本吃不消,mysql查询数量惊人的大,而且CPU资源非常高,wordpress打开过慢等.

实际上,我们可以想办法对wordpress进行优化,使得系统性能耗费没有那么高.
首先最主要的一个操作就是减少数据库查询数量.
一般情况下,博客文章发表后就不会再做修改,因此我们可以将这些页面进行缓存,从而减少数据库查询.
大多数的wordpress官方插件都是进行文件形式的缓存,而且要执行许多步操作,非常麻烦,实际上缓存效果是有一点,但是没有明显的降低系统的资源消耗.

这里提供一种方法,可以减少wordpress系统资源的消耗,由于wordpress是单一入口的程序,因此我们在index.php中所添加的所有代码,在前台访问时均会被执行.
因此在index.php中添加页面缓存代码.如下:

 

function is_cached($uri=''){
//echo "saemc://html_cache/".sha1($uri);

@$c=file_get_contents("saemc://html_cache/".sha1($uri));
if($c!=''&&sha1($uri)!='42099b4af021e53fd8fd4e056c2568d7c2e3ffa8'){
echo $c;
die();
}else{
ob_start(cache_html);
}
}
function cache_html($c){
$c=str_replace('/<div id="wpadminbar" class="">(.|\r|\n)*登出</a>(\r|\n)*\s*</div>/','',$c);
file_put_contents("saemc://html_cache/".sha1($_SERVER['REQUEST_URI']),$c);
return $c;
}
is_cached($_SERVER['REQUEST_URI']);
ob_start(myzip);

以SAE环境为例:在index.php文件前加入该代码即可.

当然如果为自建memache/redis,加上连接账号密码,key设置为sha1值即可.

0e开头MD5值小结

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020

FUZZ代码

<?php
echo "-------------------------------------------\r\n";

while(1){
$s=rand();
$s.="a";
$s="s".$s;
if(md5($s)=="0") {
echo $s;
echo "\r\n";
echo md5($s)."\r\n";
}
}

ESPCMS后台验证码不显示的问题(代码写得真是烂)

不得不吐槽espcms代码写得真是太烂了;

后台验证码走登录的时候不显示,导致没办法登录后台;

然后就跟踪啊,调试啊,最终发现,在espcms的/public/class_seccode.php中存在多处代码错误;

其实这些代码错误不只是因为程序员写的不好,是因为网上的教程本来就有问题;

一处是:imagejpeg函数的使用;第二个参数保持空,网上大多数教程都是”,两个单引号,但是这样其实是不对的,应该为null,这样才对,所以导致imagejpeg()函数报告Filename cannot be empty;

官方解决使用方法:http://php.net/manual/zh/function.imagejpeg.php

espcms代码错误的几个地方截图(imagejpeg使用错误的地方不止这处,可以通过搜索查找):

esp_cms_imagejpeg_error

 

angle变量使用错误

局部变量和全局变量不分,导致没办法调用$this->angle(实际写的是$angle)

angle的错误

不得不说,要不espcms怎么会那么多漏洞呢。。