WordPress广告插件Easy AdSense推荐并修正中文字数统计错误
本来可以在模板中直接添加广告,但是复杂的功能还是依赖插件比较好。试用了不少广告插件,但是都不尽满意。我的目的是尽量简单,可以在文章首、文章中部和文章底部添加广告。可以根据文章长度选择是否添加广告。但是找到的插件要么功能太过复杂,要么干脆不起作用,要么定位上不合适。
找到一款Quick AdSense,用着还可以。根据段落定位文章中部,添加广告。但是段落可能长可能短,有时候定位的地方就可能不在中间,看着有点丑。文章短的时候广告位还显得太多。也可以根据段落数判断是否添加广告,但是我想跟据段落数判断是否添加第一条广告却不能实现。大体还行的一款插件,用了一段时间,觉得不爽。
找到了WordPress啦推荐的WordPress广告插件Easy AdSense。特点是:
- 逻辑清晰。添加文章首、文章中部和文章底部三处广告。
- 可根据文章字数判断是否显示文章首、文章中部和文章底部三处广告。
- 可设定索引页、文章页、页面、分类页、标签页等。
- 支持边栏广告。
- 支持广告总数限制。
设计功能简单有效,非常的好。我觉得是设计的最好的一款广告插件,没有之一。
但是Easy AdSense有一个很致命的问题。试验之后我发现,文章字数判断只能判断出英文字数,不能判断出中文字数。看了源码之后,发现原因在str_word_count函数。php原生的函数str_word_count只能进行英文单词的统计,对于中文汉字显得无能为力,无法准确统计到汉字个数。解决办法是根据汉字的编码规则,自己来实现中文汉字数统计和中英文单词数统计。办法参考:【PHP】统计中英文单词数(GB2312/UTF-8编码)。这里写的很好,我就不多说。把统计代码抄下:
统计GB2312编码的汉字数:
<?php
define( “GB2312_CHINESE_PATTERN”, “/[\xb0-\xfe][\xa0-\xfe]/” );
define( “GB2312_SYMBOL_PATTERN”, “/[\xa1-\xa3][\xa0-\xfe]/” );
// count only chinese words
function str_gb2312_chinese_word_count($str = “”){
$str = preg_replace(GB2312_SYMBOL_PATTERN, “”, $str);
return preg_match_all(GB2312_CHINESE_PATTERN, $str, $arr);
}
// count both chinese and english
function str_gb2312_mix_word_count($str = “”){
$str = preg_replace(GB2312_SYMBOL_PATTERN, “”, $str);
return str_gb2312_chinese_word_count($str) + str_word_count(preg_replace(GB2312_CHINESE_PATTERN, “”, $str));
}
?>
统计UTF-8编码的汉字数:
<?php
define( “UTF8_CHINESE_PATTERN”, “/[\x{4e00}-\x{9fff}\x{f900}-\x{faff}]/u” );
define( “UTF8_SYMBOL_PATTERN”, “/[\x{ff00}-\x{ffef}\x{2000}-\x{206F}]/u” );
// count only chinese words
function str_utf8_chinese_word_count($str = “”){
$str = preg_replace(UTF8_SYMBOL_PATTERN, “”, $str);
return preg_match_all(UTF8_CHINESE_PATTERN, $str, $arr);
}
// count both chinese and english
function str_utf8_mix_word_count($str = “”){
$str = preg_replace(UTF8_SYMBOL_PATTERN, “”, $str);
return str_utf8_chinese_word_count($str) + str_word_count(preg_replace(UTF8_CHINESE_PATTERN, “”, $str));
}?>
通过替换字数统计函数str_word_count,并由get_bloginfo(‘charset’)得到博客编码,自动选择相应的汉字统计函数,便可得到正确的字数。附上我修改好的Easy AdSense的下载地址:http://download.csdn.net/source/3282921
下载需要csdn账号。原版下载地址:http://wordpress.org/extend/plugins/easy-adsenser/
Related Posts
- 群硕笔试第一题
- 通过饭否同步博客副标题
- 线性表
- PHP完整的URL地址及文件路径处理
- 统计代码行数
- register_sidebars
- WordPress适用的Google Analytics(分析)代码
- PHP和C语言共享内存通信以及信号量互斥
- WordPress固定链接中的“/”反斜杠
- Linux下Socket通信、共享内存和信号量混合使用的例子
Tags: WordPress插件.
Leave a comment