前段时间写了一篇文章《三个主流的独立博客系统,哪个才是适合你的?》,主要介绍了EMLOG,ZBLOG,Wordpress。看了那篇文章,我所有的朋友都认为羽度更倾向于ZBLOG程序,这是真的。ZBLOG推出PHP版本后,我开始使用ZBLOG程序,很快就爱上了这个博客程序。原因很简单,就是简洁。
今天的文章主要介绍zblog伪原创插件,之前很多版本由于过老,都不能用了,这里是今年最新的版本:
// 小狗AI自动伪原创
//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
function curl_request($url,$post='',$cookie='', $returnCookie=0){
if (! extension_loaded('curl')) {
file_exists('./ext/php_curl.dll') && dl('php_curl.dll'); // 加载扩展
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
if (ini_get('open_basedir') == '' && strtolower(ini_get('safe_mode')) != 'on'){
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
}
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
if($post) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
}
if($cookie) {
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
}
curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
curl_setopt($curl, CURLOPT_TIMEOUT, 150);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
if (curl_errno($curl)) {
return curl_error($curl);
}
curl_close($curl);
if($returnCookie){
list($header, $body) = explode("\r\n\r\n", $data, 2);
preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
$info['cookie'] = substr($matches[1][0], 1);
$info['content'] = $body;
return $info;
}else{
return $data;
}
}
/**
* 提交文章数据.
*
* @api Filter_Plugin_PostArticle_Core
* @api Filter_Plugin_PostArticle_Succeed
*
* @throws Exception
*
* @return Post
*/
function PostArticle()
{
global $zbp;
if (!isset($_POST['ID'])) {
return false;
}
if (isset($_COOKIE['timezone'])) {
$tz = GetVars('timezone', 'COOKIE');
if (is_numeric($tz)) {
date_default_timezone_set('Etc/GMT' . sprintf('%+d', -$tz));
}
unset($tz);
}
if (isset($_POST['Tag'])) {
$_POST['Tag'] = FormatString($_POST['Tag'], '[noscript]');
$_POST['Tag'] = PostArticle_CheckTagAndConvertIDtoString($_POST['Tag'], 0);
}
if (isset($_POST['Content'])) {
//
// 小狗AI仿写 自动化伪原创代码
$xfm_url = 'http://www.xiaofamao.com/api.php?json=0&v=1&key=xxx';
$_POST['Content'] = curl_request($xfm_url, array('wenzhang'=>$_POST['Content']));
//
$_POST['Content'] = preg_replace("/
/i", '', $_POST['Content']);
$intro = isset($_POST['Intro']) ? $_POST['Intro'] : '';
if (isset($_POST['Intro'])) {
if (stripos($_POST['Content'], '') !== false) {
$_POST['Intro'] = GetValueInArray(explode('', $_POST['Content']), 0);
}
if (trim($_POST['Intro']) == '' || (stripos($_POST['Intro'], '') !== false)) {
if ($zbp->option['ZC_ARTICLE_INTRO_WITH_TEXT'] == true) {
//改纯HTML摘要
$i = (int) $zbp->option['ZC_ARTICLE_EXCERPT_MAX'];
$_POST['Intro'] = FormatString($_POST['Content'], "[nohtml]");
$_POST['Intro'] = SubStrUTF8_Html($_POST['Intro'], $i);
} else {
$i = (int) $zbp->option['ZC_ARTICLE_EXCERPT_MAX'];
if (Zbp_StrLen($_POST['Content']) > $i) {
$i = (int) Zbp_Strpos($_POST['Content'], '>', $i);
}
if ($i == 0) {
$i = (int) Zbp_StrLen($_POST['Content']);
}
if ($i < $zbp->option['ZC_ARTICLE_EXCERPT_MAX']) {
$i = (int) $zbp->option['ZC_ARTICLE_EXCERPT_MAX'];
}
$_POST['Intro'] = SubStrUTF8_Html($_POST['Content'], $i);
$_POST['Intro'] = CloseTags($_POST['Intro']);
}
$_POST['Intro'] .= '';
} else {
if ($zbp->option['ZC_ARTICLE_INTRO_WITH_TEXT'] == true) {
//改纯HTML摘要
$_POST['Intro'] = FormatString($_POST['Intro'], "[nohtml]");
}
$_POST['Intro'] = CloseTags($_POST['Intro']);
}
}
}
if (!isset($_POST['AuthorID'])) {
$_POST['AuthorID'] = $zbp->user->ID;
} else {
if (($_POST['AuthorID'] != $zbp->user->ID) && (!$zbp->CheckRights('ArticleAll'))) {
$_POST['AuthorID'] = $zbp->user->ID;
}
if (empty($_POST['AuthorID'])) {
$_POST['AuthorID'] = $zbp->user->ID;
}
}
if (isset($_POST['Alias'])) {
$_POST['Alias'] = FormatString($_POST['Alias'], '[noscript]');
}
if (isset($_POST['PostTime'])) {
$_POST['PostTime'] = strtotime($_POST['PostTime']);
}
if (!$zbp->CheckRights('ArticleAll')) {
unset($_POST['IsTop']);
}
$article = new Post();
$pre_author = null;
$pre_tag = null;
$pre_category = null;
$pre_istop = null;
$pre_status = null;
$orig_id = 0;
if (GetVars('ID', 'POST') == 0) {
if (!$zbp->CheckRights('ArticleNew')) {
$zbp->ShowError(6, __FILE__, __LINE__);
}
if (!$zbp->CheckRights('ArticlePub')) {
$_POST['Status'] = ZC_POST_STATUS_AUDITING;
}
} else {
$article = $zbp->GetPostByID(GetVars('ID', 'POST'));
if ($article->ID == 0) {
$zbp->ShowError(9, __FILE__, __LINE__);
}
if (!$zbp->CheckRights('ArticleEdt')) {
$zbp->ShowError(6, __FILE__, __LINE__);
}
if (($article->AuthorID != $zbp->user->ID) && (!$zbp->CheckRights('ArticleAll'))) {
$zbp->ShowError(6, __FILE__, __LINE__);
}
if ((!$zbp->CheckRights('ArticlePub')) && ($article->Status == ZC_POST_STATUS_AUDITING)) {
$_POST['Status'] = ZC_POST_STATUS_AUDITING;
}
$orig_id = $article->ID;
$pre_author = $article->AuthorID;
$pre_tag = $article->Tag;
$pre_category = $article->CateID;
$pre_istop = $article->IsTop;
$pre_status = $article->Status;
}
foreach ($zbp->datainfo['Post'] as $key => $value) {
if ($key == 'ID' || $key == 'Meta') {
continue;
}
if (isset($_POST[$key])) {
$article->$key = GetVars($key, 'POST');
}
}
$article->Type = ZC_POST_TYPE_ARTICLE;
$article->UpdateTime = time();
FilterMeta($article);
foreach ($GLOBALS['hooks']['Filter_Plugin_PostArticle_Core'] as $fpname => &$fpsignal) {
$fpname($article);
}
FilterPost($article);
$article->Save();
$zbp->AddCache($article);
//更新统计信息
$pre_arrayTag = $zbp->LoadTagsByIDString($pre_tag);
$now_arrayTag = $zbp->LoadTagsByIDString($article->Tag);
$pre_array = $now_array = array();
foreach ($pre_arrayTag as $tag) {
$pre_array[] = $tag->ID;
}
foreach ($now_arrayTag as $tag) {
$now_array[] = $tag->ID;
}
$del_array = array_diff($pre_array, $now_array);
$add_array = array_diff($now_array, $pre_array);
$del_string = $zbp->ConvertTagIDtoString($del_array);
$add_string = $zbp->ConvertTagIDtoString($add_array);
if ($del_string) {
CountTagArrayString($del_string, -1, $article->ID);
}
if ($add_string) {
CountTagArrayString($add_string, +1, $article->ID);
}
if ($pre_author != $article->AuthorID) {
if ($pre_author > 0) {
CountMemberArray(array($pre_author), array(-1, 0, 0, 0));
}
CountMemberArray(array($article->AuthorID), array(+1, 0, 0, 0));
}
if ($pre_category != $article->CateID) {
if ($pre_category > 0) {
CountCategoryArray(array($pre_category), -1);
}
CountCategoryArray(array($article->CateID), +1);
}
if ($zbp->option['ZC_LARGE_DATA'] == false) {
CountPostArray(array($article->ID));
}
if ($orig_id == 0 && $article->IsTop == 0 && $article->Status == ZC_POST_STATUS_PUBLIC) {
CountNormalArticleNums(+1);
} elseif ($orig_id > 0) {
if (($pre_istop == 0 && $pre_status == 0) && ($article->IsTop != 0 || $article->Status != 0)) {
CountNormalArticleNums(-1);
}
if (($pre_istop != 0 || $pre_status != 0) && ($article->IsTop == 0 && $article->Status == 0)) {
CountNormalArticleNums(+1);
}
}
if ($article->IsTop == true && $article->Status == ZC_POST_STATUS_PUBLIC) {
CountTopPost($article->Type, $article->ID, null);
} else {
CountTopPost($article->Type, null, $article->ID);
}
$zbp->AddBuildModule('previous');
$zbp->AddBuildModule('calendar');
$zbp->AddBuildModule('comments');
$zbp->AddBuildModule('archives');
$zbp->AddBuildModule('tags');
$zbp->AddBuildModule('authors');
foreach ($GLOBALS['hooks']['Filter_Plugin_PostArticle_Succeed'] as $fpname => &$fpsignal) {
$fpname($article);
}
return $article;
}
如果这里没看懂,可以直接查看---> 图文教程
不涉及任何技术内容,只是因为昨天看了媒体的一篇文章,告诉我为什么要用Wordpress博客程序,挺全面的。所以今天我也详细说说我为什么喜欢ZBLOG,让更多的人了解ZBLOG博客程序。
在介绍ZBLOG博客程序之前,我必须声明,我是一个很容易改变主意的人。我为什么这么说?因为博客最早是在2010年建立的,虽然我知道Wordpress是一个独立的博客程序,功能非常强大,但我还是选择了EMLOG作为一个独立的博客。选择EMLOG的原因也是简单。简单,我的意思不仅仅是网站博客的主题简单,网站程序的功能也要尽量简单。EMLOG的原创主题模板也是我喜欢EMLOG的重要因素之一。
相比Wordpress,EMLOG的后台功能更简单。同时也可能是因为EMLOG是国产程序,所以有些叫资源加载很快。Wordpress需要调试来加快加载速度,比如默认的叫谷歌字体库。为了提高Wordprss的加载速度,我们需要取消谷歌字库的调用,或者用国内其他字库的接口来代替。而且我个人一直觉得Wordpress真的很强大,可以建博客站,企业站,综合门户站等类型的站点。但是,这个优点在我看来有点像缺点。由于功能多,后台菜单看起来没有EMLOG或者ZBLOG那么整洁。
我更喜欢尝试一些新的东西,所以在ZBLOG推出它的PHP版本后,我在本地用ZBLOG的PHP版本搭建了一个博客环境,感觉很不错。这时候EMLOG升级到5以后,默认模板模仿Wordpress的默认模板,EMLOG的开发者好像越来越少了,但是现在的EMLOG给我的印象是不简单但是很简单。最后说一下ZBLOG程序。其实这个博客程序是一个非常经典的国内博客程序,只是以前只是ASP版本,好像很久没有更新了。但是这几年ZBLOG重金推出PHP版,背景风格还是很平很简单,我很喜欢。另外,我眼中的互联网技术的颜色总是蓝色,ZBLOG背景的主色也是蓝色,这可能是我个人喜欢ZBLOG的原因之一。
这里很多人可能还看不到ZBLOG的优点,也看不到我比其他博客程序更喜欢ZBLOG的原因。简单来说,相对于EMLOG程序,我个人认为ZBLOG的发展越来越好,而EMLOG似乎有些衰落;与Wordpress相比,ZBLOG加载简单快捷。另外,我喜欢ZBLOG后台的平面菜单界面。在ZBLOG应用中心,我们还可以看到ZBLOG插件和主题更新更加频繁。
当然,每个人都有自己喜欢的博客程序。就像每个人心中的偶像可能不一样,每一个事物,每一个节目都有自己独特的吸引力,否则就失去了它的诞生价值。