标签 博客 下的文章

yy2.jpg
YY玉照.摄于20050513

忘记了什么时候开始写日记了。想着真的很久了。那个年代还不流行博客。那个时候用一个简单的PHP文章系统改成一个日记系统,里面还按照以前在日记本里面常见的日期,天气,心情等等的东西。后来网络流行了博客系统,就直接转到博客系统里面了。

博客系统的慢慢的按照博客系统的规范内容写日记,就这样从写日记变成了写博客。日记的内容也开始发生变化。已经不再是以前的单纯记录当日发生的事情,更多的是筛选后的心得或者见闻。这和以往的日记很不同。也因为这种不同导致了写着写着就没有动力了。现在博客系统也慢慢的式微了,这样写的动力更加是没有了。

最近我忽然回想自己很久没有写东西了。自己从心底其实有很多想法和有记录意义的事情是需要写下来的,但是一直没有写下来。也有念头说不如新开一个博客重新写?要不要自己写一个程序然后用来写呢?。。。上述种种想法,除了浪费我时间,没有任何帮助。这些念头都不是解决为问题的方法。其实我本来就有博客,直接用这个博客写日记不就得了吗?这是白费功夫瞎j8折腾啊。

说起写日记,我想当年我的女友的坚持真的十分难得。她是一个很能坚持的人(虽然没有和我坚持到最后)。她会把每天见到或者自己的想法坚持写下来,即使当天没有写,第二天还是会如期补上。从她写第一个博客开始,到blogcn倒闭,她依然坚持写,后来转移到blogbus也继续写。现在bogbus也倒闭了。不知道她现在有没有坚持。现在想想,我和她的曾经的爱情大部分时间都围绕着博客的。或者准确点说是围绕她的心情。很多她的想法和心情我是通过她的日记了解到的(包括她要离开我了)。

我现在想写点东西,不为别人就是想写给将来的自己看。记录自己人生的一些轨迹。有机会把经历归档起来,给自己的后辈看看自己曾经做过些什么,有些什么想法,这样也是件不错的事情啊。所以从今天开始吧,好好记录生活的点滴。希望自己能坚持!

Movable-Type-Logo.png

MT是我使用时间最长的一个博客程序。它基于Perl,功能强大而且可靠性十分稳妥。然而,在快餐文化异常普及的当下,显得疲态百出。它没有php程序的灵活,部署简易,直白点说是折腾。因为站点移到国外的VPS的原因,国内连接速度只带不敢恭维,因此MT也成了使用困难丛丛的选择了。无奈只能转投效率优先的typecho。

因为博客思路设计的差异,我仅仅转换了原来的文章及相关评论。涉及到的数据表也只有3个。有需要的朋友可以参考下。将下面的源码保存为php文件,放在typecho博客根目录然后运行即可。(建议做好相关数据库备份后,在本地转换成功后再上传)

<?php
/**
 * Typecho Blog Platform
 *
 * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
 * @license    GNU General Public License 2.0
 * @version    $Id: index.php 1153 2017-03-12 10:53:22Z ezo.biz $
 */

/** 载入配置支持 */
if (!defined('__TYPECHO_ROOT_DIR__') && [email protected]_once 'config.inc.php') {
    file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
    exit;
}

/** 初始化组件 */
#Typecho_Widget::widget('Widget_Init');
$d_MT = "blog";
/**
 * 初始化mt数据库
 */
$dbMT = new Typecho_Db('Mysql', 'mt_');
$dbMT->addServer(array (
   'host' => '127.0.0.1',
   'user' => 'root',
   'password' => '123456',
   'charset' => 'utf8',
   'port' => '3306',
   'database' => $d_MT,
 ), Typecho_Db::READ | Typecho_Db::WRITE);
 Typecho_Db::set($dbMT);
//清空原有数据
$db->query("DELETE FROM `typecho_contents`;");
$db->query("DELETE FROM `typecho_relationships`;");
$db->query("DELETE FROM `typecho_comments`;");

$a=$dbMT->query("SELECT entry_id,entry_created_on,entry_modified_on,entry_title,Entry_text,entry_text_more,entry_basename FROM mt_entry;");
$posts = $dbMT->fetchAll($a);
foreach($posts as $post){
  unset($sql);
  $post['entry_created_on'] = strtotime($post['entry_created_on']);
  $post['entry_modified_on'] = strtotime($post['entry_modified_on']);
  if(!empty($post['entry_text_more']) || ($post['entry_text_more'] !="")){
    $post['Entry_text'] = $post['Entry_text'].$post['entry_text_more'];
  }
  $post['Entry_text'] = preg_replace('/(http|https)(.*?)(ezo\.biz\/b\/).*?(\/)((?:[a-z0-9_-|\.|-]*)(\.)(gif|jpeg|jpg|png))/i', "/b_img/$5", $post['Entry_text']);
  $post['Entry_text'] = str_replace("http://ezo.biz","https://ezo.biz",$post['Entry_text']);
  $post['Entry_text'] = str_replace("http://www.ezo.biz","https://www.ezo.biz",$post['Entry_text']);
  $post['Entry_text'] = mysql_real_escape_string($post['Entry_text']);
  $post['entry_title'] = mysql_real_escape_string($post['entry_title']);


  /**
   * 修复typecho slug主键唯一的问题
   */
  $d = gmdate('Ymd',$post['entry_created_on']);
  $post['entry_basename'] = $post['entry_basename']."-$d";


  $sql = "INSERT INTO `typecho_contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`, `views`, `viewsNum`, `likesNum`)  VALUES (NULL, '$post[entry_title]', '$post[entry_basename]', '$post[entry_created_on]', '$post[entry_modified_on]', '$post[Entry_text]', '0', '1', NULL, 'post', 'publish', NULL, '0', '1', '1', '1', '0', '0', '0', '0');";
  //返回文章id
  $cid = $db->query($sql,Typecho_Db::WRITE,Typecho_Db::INSERT);
  //绑定目录
  $db->query("INSERT INTO `typecho_relationships` (`cid`, `mid`) VALUES ('$cid', '1');");

  /**
   * 转换评论
   */
  $b = $dbMT->query("SELECT comment_author,comment_created_on,comment_email,comment_entry_id,comment_ip,comment_text,comment_url FROM mt_comment WHERE comment_visible=1 AND comment_entry_id=$post[entry_id];");
  $comments = $dbMT->fetchALL($b);
  foreach ($comments as $comment) {
    # 批量导入评论
    $comment['comment_created_on'] = strtotime($comment['comment_created_on']);
    $db->query("INSERT INTO `typecho_comments` (`coid`, `cid`, `created`, `author`, `authorId`, `ownerId`, `mail`, `url`, `ip`, `agent`, `text`, `type`, `status`, `parent`) VALUES (NULL, '$cid', '$comment[comment_created_on]', '$comment[comment_author]', '0', '0', '$comment[comment_email]', '$comment[comment_url]', '$comment[comment_ip]', NULL, '$comment[comment_text]', 'comment', 'approved', '0');");
  }
}

pjblog.gifASP为基础的PJblog(下简称PJ)可属今年国内发展最快,迅速崛起的blog了.因为本人对asp编写并不熟悉,流于表面简单的测试了一下PJ,功能不算强大.基本的blog分类,发表,编辑,引用,回响,rss...其实都较为普通的.
那么,PJ其实优越在那里呢?仔细发现,PJ的模板是相当漂亮的.无论在多媒体,特别是视听觉媒体,上面做的相当不错.页面元素很丰富.一看上去就让人感觉喜欢的样子.还有结合JS特效处理的效果.等等,都是PJ受到青睐和看好的重要原因.
说了好的,也要来点负面的评论.
其一,PJ在处理绚丽界面的同时忽略了WEB标准,XHTML 1.0 Transitional,也未能完美通过.这是需要改进的.
其二,借鉴boblog的发展经验看.PJ也是处理独立开发过程,PuterJam作为PJ开发的一把手,如果缺乏共同开发团体,当发展到一定阶段,恐怕回出现一定的技术瓶颈.这个是控制产品生命周期的重要制约因素.故此,作为开发人员,不得不考虑的.
其三,ASP本身的制约.使用MDB数据库的PJ,当数据库膨胀到一定程度的时候,是否会成为PJ运行的阻力呢?时候可以考虑静态页面或者采取更优化的存取策略呢?
其四,Blog作为一种share mind的重要平台,过多绚丽的色调,是否会成为资讯传播的阻碍呢?这根平衡木的支点应该摆在什么位置.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×