刷新页面后让WordPress背景随机切换

作者:matrix 发布时间:2013 年 10 月 10 日 分类:Wordpress 零零星星

只需要几行php代码就可以让WordPress主题背景随机切换,每次刷新切换不同的图片。这需要按F5刷新页面或者到新页面时背景才会自动变换。

更新的>>用BACKSTRETCH实现定时切换背景 可以实现定时自动切换背景。

用BACKSTRETCH实现定时切换背景

<?php $random_image = rand(1, 5); ?>  
<div id="div1">  
    <img src="<?php bloginfo('stylesheet_directory');?>/bg/<?php echo $random_image; ?>.jpg"/>  
</div>  

说明:

1行中的5代表有5张图片可供切换

2行中div1为背景css样式id 阅读剩余部分 »

用BACKSTRETCH实现定时自动切换背景

作者:matrix 发布时间:2013 年 10 月 9 日 分类:Wordpress 兼容并蓄 零零星星

图片4808-用BACKSTRETCH实现定时自动切换背景

jquery-backstretch可以实现之前>>刷新页面后让WordPress背景随机切换  不能到达的动态切换背景功能。 用jquery-backstretch就算你不按F5刷新页面背景也可以自动切换,带有淡入淡出的缓慢加载那种效果,很好看。

github地址:https://github.com/srobbin/jquery-backstretch

官网:http://srobbin.com/jquery-plugins/backstretch/

目前最新版本 Backstretch - v2.0.4 - 2013-06-19 阅读剩余部分 »

用虚拟机安装Android

作者:matrix 发布时间:2013 年 10 月 6 日 分类:零零星星

现在已经有很多Android模拟器可用,更简单快捷。


Android-x86

官网:http://www.android-x86.org/

google code:https://code.google.com/p/android-x86/downloads/list

google翻译了一下google code上很友好的提示:

图片4810-用虚拟机安装Android

由于我没有安装vm或者其他虚拟机,android-x86那就只有以后再说。目前最新的版本android-x86-4.3-20130725.iso

如果看官需要安装,建议参考:

http://wenku.baidu.com/view/5c60fd3067ec102de2bd8947.html

 

http://walker-a.com/archives/2160

http://louxi.me/archives/1858

修改Mini天气预报app

作者:matrix 发布时间:2013 年 10 月 3 日 分类:兼容并蓄 零零星星

Mini天气预报app v1.2

地址:http://demo.hhtjim.com

修改Mini天气预报app,之前使用的是专业气象的数据,这次改的189 API:http://api.189.cn/huafeng/api/getforecast24?access_token=91d1d9d25c62fd393e113116b07b6f601379679414323&app_id=120032470000032374&city_id=城市ID

参考:http://open.189.cn/index.php?m=api&c=index&a=show&id=359

城市ID列表 :http://open.189.cn/sharedata/cms/uploadfile/2012/1102/113459s3unXsSCAn.zip 阅读剩余部分 »

Microsoft Internet Explorer 6单文件版本

作者:matrix 发布时间:2013 年 9 月 28 日 分类:零零星星

曾经Internet Explorer 6.0.

Microsoft Internet Explorer 6单文件版本  可以用来模拟web页面对ie6来说到了哪种变形的程度。仅供测试。

模拟web页面对IE6来说到了哪种变形的程度

下载:

http://www.400gb.com/file/29292950

http://pan.baidu.com/share/link?shareid=3072616199&uk=3238236832

中国电信开放平台VPS重新安装wdcp

作者:matrix 发布时间:2013 年 9 月 22 日 分类:兼容并蓄 零零星星

都不知道以前咋搞的,弄得某些端口访问失败,试试重装wdcp。

上面没有什么重要的数据,不用管。

相关说明

[toggle]所有软件安装目录/www/wdlinux
站点配置文件
/www/wdlinux/nginx/conf/vhost
/www/wdlinux/apache/conf/vhost
数据库配置文件/www/wdlinux/etc/my.cnf
数据库数据文件目录 /www/wdlinux/mysql/var[/toggle]

重装wdcp步骤: 阅读剩余部分 »

wordpress添加二级导航功能CSS代码

作者:matrix 发布时间:2013 年 9 月 21 日 分类:Wordpress 零零星星

NGRO主题没有导航菜单,也就只有自己动手了。

最终样式,感觉还不错:

最终样式

步骤: 阅读剩余部分 »

本站「恢复」域名解析

作者:matrix 发布时间:2013 年 9 月 19 日 分类:兼容并蓄 零零星星

自从本站准备暂时停止域名解析 的2013年08月13日开始到昨天9-18 10:38.   😀 被安通过了。工信部短信通知的,后来也有email。  哈哈

硬是感谢各位相关人员~

这一个月的时间真恼火。期间找了俩关于不关站的办法:

10-15添加第三种更靠谱的方法

1.靠谱的就是使用DNSPOD的功能:修改线路类型

图片4844-本站「恢复」域名解析

到域名列表里找到线路类型选择“搜索引擎”,这样蜘蛛照样可以正常访问,比起停止域名解析来好得多。

本站收录本来就那一点点,感觉影响不大。

2.不靠谱的就是识别来访者ip地址实现自动屏蔽省级IP段。

这样的话还是有些作用,但不能保证人家看不到你的网站。

so, 不咋靠谱。

在index.php中适当位置添加相关代码:

<?
function convertip($ip)
{
//IP数据文件路径
    $dat_path = 'QQWry.dat';

//检查IP地址
    if (!ereg("^([0-9]{1,3}.){3}[0-9]{1,3}$", $ip)) {
        return 'IP Address Error';
    }

//打开IP数据文件
    if (!$fd = @fopen($dat_path, 'rb')) {
        return 'IP date file not exists or access denied';
    }

//分解IP进行运算,得出整形数
    $ip = explode('.', $ip);
    $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

//获取IP数据索引开始和结束位置
    $DataBegin = fread($fd, 4);
    $DataEnd = fread($fd, 4);
    $ipbegin = implode('', unpack('L', $DataBegin));
    if ($ipbegin < 0) $ipbegin += pow(2, 32);
    $ipend = implode('', unpack('L', $DataEnd));
    if ($ipend < 0) $ipend += pow(2, 32);
    $ipAllNum = ($ipend - $ipbegin) / 7 + 1;

    $BeginNum = 0;
    $EndNum = $ipAllNum;

//使用二分查找法从索引记录中搜索匹配的IP记录
    while ($ip1num > $ipNum || $ip2num < $ipNum) {
        $Middle = intval(($EndNum + $BeginNum) / 2);

//偏移指针到索引位置读取4个字节
        fseek($fd, $ipbegin + 7 * $Middle);
        $ipData1 = fread($fd, 4);
        if (strlen($ipData1) < 4) {
            fclose($fd);
            return 'System Error';
        }
//提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂
        $ip1num = implode('', unpack('L', $ipData1));
        if ($ip1num < 0) $ip1num += pow(2, 32);

//提取的长整型数大于我们IP地址则修改结束位置进行下一次循环
        if ($ip1num > $ipNum) {
            $EndNum = $Middle;
            continue;
        }

//取完上一个索引后取下一个索引
        $DataSeek = fread($fd, 3);
        if (strlen($DataSeek) < 3) {
            fclose($fd);
            return 'System Error';
        }
        $DataSeek = implode('', unpack('L', $DataSeek . chr(0)));
        fseek($fd, $DataSeek);
        $ipData2 = fread($fd, 4);
        if (strlen($ipData2) < 4) {
            fclose($fd);
            return 'System Error';
        }
        $ip2num = implode('', unpack('L', $ipData2));
        if ($ip2num < 0) $ip2num += pow(2, 32);

//没找到提示未知
        if ($ip2num < $ipNum) {
            if ($Middle == $BeginNum) {
                fclose($fd);
                return 'Unknown';
            }
            $BeginNum = $Middle;
        }
    }

//下面的代码读晕了,没读明白,有兴趣的慢慢读
    $ipFlag = fread($fd, 1);
    if ($ipFlag == chr(1)) {
        $ipSeek = fread($fd, 3);
        if (strlen($ipSeek) < 3) {
            fclose($fd);
            return 'System Error';
        }
        $ipSeek = implode('', unpack('L', $ipSeek . chr(0)));
        fseek($fd, $ipSeek);
        $ipFlag = fread($fd, 1);
    }

    if ($ipFlag == chr(2)) {
        $AddrSeek = fread($fd, 3);
        if (strlen($AddrSeek) < 3) {
            fclose($fd);
            return 'System Error';
        }
        $ipFlag = fread($fd, 1);
        if ($ipFlag == chr(2)) {
            $AddrSeek2 = fread($fd, 3);
            if (strlen($AddrSeek2) < 3) {
                fclose($fd);
                return 'System Error';
            }
            $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
            fseek($fd, $AddrSeek2);
        } else {
            fseek($fd, -1, SEEK_CUR);
        }

        while (($char = fread($fd, 1)) != chr(0))
            $ipAddr2 .= $char;

        $AddrSeek = implode('', unpack('L', $AddrSeek . chr(0)));
        fseek($fd, $AddrSeek);

        while (($char = fread($fd, 1)) != chr(0))
            $ipAddr1 .= $char;
    } else {
        fseek($fd, -1, SEEK_CUR);
        while (($char = fread($fd, 1)) != chr(0))
            $ipAddr1 .= $char;

        $ipFlag = fread($fd, 1);
        if ($ipFlag == chr(2)) {
            $AddrSeek2 = fread($fd, 3);
            if (strlen($AddrSeek2) < 3) {
                fclose($fd);
                return 'System Error';
            }
            $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
            fseek($fd, $AddrSeek2);
        } else {
            fseek($fd, -1, SEEK_CUR);
        }
        while (($char = fread($fd, 1)) != chr(0)) {
            $ipAddr2 .= $char;
        }
    }
    fclose($fd);

//最后做相应的替换操作后返回结果
    if (preg_match('/http/i', $ipAddr2)) {
        $ipAddr2 = '';
    }
    $ipaddr = "$ipAddr1 $ipAddr2";
    $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
    $ipaddr = preg_replace('/^s*/is', '', $ipaddr);
    $ipaddr = preg_replace('/s*$/is', '', $ipaddr);
    if (preg_match('/http/i', $ipaddr) || $ipaddr == '') {
        $ipaddr = 'Unknown';
    }

    return $ipaddr;
}

function findstr($str, $substr)
{
    $m = strlen($str);
    $n = strlen($substr);
    if ($m < $n) return false;
    for ($i = 0; $i <= ($m - $n + 1); $i++) {
        $sub = substr($str, $i, $n);
        if (strcmp($sub, $substr) == 0) return true;
    }
    return false;
}

?>

<?
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
$ClientCity = convertip($user_IP); //获得所在城市字符串
$ClientCity = iconv("gb2312", "utf-8", $ClientCity);
$flag = false;
$tmp = $_SERVER['HTTP_USER_AGENT'];
if (strpos($tmp, 'Googlebot') !== false) {
    $flag = true;
} else if (strpos($tmp, 'Baiduspider') > 0) {
    $flag = true;
} else if (strpos($tmp, 'Yahoo! Slurp') !== false) {
    $flag = true;
} else if (strpos($tmp, 'msnbot') !== false) {
    $flag = true;
} else if (strpos($tmp, 'Sosospider') !== false) {
    $flag = true;
} else if (strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false) {
    $flag = true;
} else if (strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false) {
    $flag = true;
} else if (strpos($tmp, 'fast-webcrawler') !== false) {
    $flag = true;
} else if (strpos($tmp, 'Gaisbot') !== false) {
    $flag = true;
} else if (strpos($tmp, 'ia_archiver') !== false) {
    $flag = true;
} else if (strpos($tmp, 'altavista') !== false) {
    $flag = true;
} else if (strpos($tmp, 'lycos_spider') !== false) {
    $flag = true;
} else if (strpos($tmp, 'Inktomi slurp') !== false) {
    $flag = true;
}

//echo $ClientCity;
$b = '安庆'; //这里填写要屏蔽的地区
if (findstr($ClientCity, $b)) {
    if ($flag) { //这里是让蜘蛛过去
        echo "<script>location.href='http://www.tlrc.com/';</script>";
    } else {
        echo "<script>location.href='http://www.tongling.cn/';</script>";
    }

} else {
//正常需要访问的代码,也可以再增加屏蔽的城市
}
?>

参考:http://www.discuz.net/forum.php?mod=viewthread&tid=2712504

3.来自某Q群的代码。亲测成功!最简洁,也就几行js代码就可实现。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>  
<script type="text/javascript">  
var t = remote_ip_info;  
if( t.city == '成都' ){  
window.location.href='https://www.hhtjim.com';  
}  
</script>  

说明:

第5行填写需要屏蔽的城市

弊端就是只能屏蔽城市的IP段,屏蔽省份的话需要相应修改。

屏蔽四川全省:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>  
<script type="text/javascript">  
var t = remote_ip_info;  
if( t.province == '四川' ){  
window.location.href='https://www.hhtjim.com';  
}  
</script>  

说明:

第5行填写需要屏蔽的省份,这里就解决了上面不能屏蔽省份的弊端。

自己完全可以DIY,如果需要屏蔽中国地区

第5行改为if( t.country == '中国' ){

 

屏蔽来自联通的IP

第5行改为if( t.isp == '联通' ){