预览模式: 普通 | 列表

Twitter小栏目引用代码修改


两天前,不明原因Twhirl不能用了,一开始是推测是不是自己的API被发现然后BAN掉了。后来一想,不对呀,如果是被BAN掉的话,IP应该也完蛋了,博客好好的样子,应该排除了被BAN在墙外面的可能。不过,没办法用这个是事实,所以就在网上找了一个用PHP文件绕开大墙,然后引用PHP数据的方式来代替一开始用API解决的方案。代码作者是hzw513,具体代码如下,剪切一下,用记事本新建twitter.php文档粘贴就可以了。

  1. <?php
  2.  # Author : hzw513@gmail.com
  3.  # Date : 2009-9-9
  4.  # Domo : http://www.hzw513.com
  5.  # Version : 1.0
  6.  # description : 由Web服务器直接从twitter.com读取数据,如果你的服务器在国外,任何人都不用翻墙就能看到你的twitter更新了(如果你的服务器没被"墙").目前只支持读取!
  7.  
  8. # 调用 : <script language="JavaScript" src='http://blog.hzw513.com/wp/twitter.php'></script>
  9.  # 把 src 的值改成你上传的路径
  10.  #
  11.  # 配合wp的主题,在sidebar调用
  12.  # <div class="item-list">
  13.  # <ul id="twitter_update_list"><script language="JavaScript" src='http://blog.hzw513.com/wp/twitter.php'></script></ul>
  14.  # </div></div>
  15.  #
  16.  
  17. ###########################################
  18.  # 把这里的配置修改成你想要的
  19.  $twitterId = '  ';    # twitter用户名
  20.  $count = 10;    # 要显示的记录数
  21.  ###########################################
  22.  
  23. $url = "http://twitter.com/statuses/user_timeline.xml?id=$twitterId&count=$count";
  24.  $doc = new DOMDocument();
  25.  $doc->load($url);
  26.  $tweets = $doc->getElementsByTagName( "status" );
  27.  foreach( $tweets as $tweet )
  28.  {
  29.   $ids = $tweet->getElementsByTagName( "id" );
  30.   $id = $ids->item(0)->nodeValue;
  31.  
  32.  $descriptions = $tweet->getElementsByTagName( "text" );
  33.   $description = $descriptions->item(0)->nodeValue;
  34.  
  35.  $pubDates = $tweet->getElementsByTagName( "created_at" );
  36.   $pubDate = $pubDates->item(0)->nodeValue;
  37.  
  38.   $pubDate = timeToString($pubDate);
  39.   $detailUrl = "http://twitter.com/$twitterId/statuses/$id";
  40.    $response .= "<li>$description - <a href=$detailUrl title='来推我呀' target='_blank'>$pubDate</a></li>";
  41.  }
  42.  
  43. # 以JavaScipt形式输出
  44.  echo 'document.write("'.$response.'")';
  45.  
  46. # xml取回的时间格式是 Mon Sep 07 09:34:04 +0000 2009
  47.  # 下面这个函数就是把 这个时间改变成 xx second(s) ago,xx day(s) ago ......
  48.  # 做得比较粗略,大家可以改成自己想要的
  49.  function timeToString($pubDate)
  50.  {
  51.   $pubDate = strtotime($pubDate);
  52.   $nowTime = time();
  53.   $different = $nowTime - $pubDate;
  54.   if ($different < 60 )
  55.   { return "$different seconds ago"; }
  56.   elseif($different >= 60 and $different<3600)
  57.   {
  58.    $different = (int)($different/60);
  59.    if ($different <=1)
  60.    {
  61.     return "$different min ago";
  62.    }
  63.    else
  64.    {
  65.     return "$different mins ago";
  66.    }
  67.   }
  68.   elseif($different >= 3600 and $different <3600 *24)
  69.   {
  70.    $different = (int)($different/3600);
  71.    if ($different <=1)
  72.    {
  73.     return "$different hour ago";
  74.    }
  75.    else
  76.    {
  77.     return "$different hours ago";
  78.    }
  79.   }
  80.   elseif($different >= 3600 * 24 and $different < 3600 * 24 * 30)
  81.   {
  82.    $different = (int)($different/(3600*24));
  83.    if ($different <=1)
  84.    {
  85.     return "$different day ago";
  86.    }
  87.    else
  88.    {
  89.     return "$different days ago";
  90.    }
  91.   }
  92.   elseif($different >= 3600 * 24 *30 and $different < 3600 * 24 * 12)
  93.   {
  94.    $different = (int)($different/(3600*24*30));
  95.    if ($different <=1)
  96.    {
  97.     return "$different month ago";
  98.    }
  99.    else
  100.    {
  101.     return "$different months ago";
  102.    }
  103.   }
  104.   else
  105.   {
  106.    $different = (int)($different/(3600*24*30*12));
  107.    if ($different <=1)
  108.    {
  109.     return "$different year ago";
  110.    }
  111.    else
  112.    {
  113.     return "$different years ago";
  114.    }
  115.   }
  116.  }
  117.  ?>


在右侧栏Twitter小栏目的引用上,可以这么写:

  1. <div class="item-list" style="margin-left:-20px;">
  2.  <ul id="twitter_update_list">
  3.  <script language="JavaScript" src='http://PHP所在的地址/twitter.php'></script>
  4.  </ul>
  5.  </div>
  6.  <a href="http://twitter.com/takechance_bao" id="twitter-link" style="display:block;text-align:right;">来推我呀!</a>


虽然也恢复了这个引用推特信息的小栏目,但是有一点必须要注意,要使用这个解决方案,首先必须要有一个能放和能执行这个PHP文件的国外空间。否则因为墙的关系,是没办法实现引用的目的的。

顺便,就在写这个日志的时候,我的twhirl又恢复上线了。换句话说根据这个信息判断,这个API前两天失效应该是因为超过了Twitter官方对API引用的次数限制,被暂时拉到黑名单里去了。而博客里小栏目对这个API的引用肯定是引起这一系列问题的罪魁祸首,所以嘛,到最后,这个替代方案也还是得实行的。

贴一些找来的推特的信息技巧


@
格式:@andoosea  twitter的使用技巧
功能:以公开留言的形式回复别人,所有的用户都能看到。


D
格式:D andoosea  我刚写了关于twitter的使用技巧
功能:以站内留言的形式回复别人,仅有对方才能看到(右侧的Direct Messages),注意D和用户名之间有个空格键。


WHOIS
格式:whois andoosea
功能:查询用户资料。注意这个功能只支持WEB输入(会在页面顶部显示相关信息),插件和IM无效。


GET
格式:get andoosea
功能:查询用户最近的更新。注意这个功能只支持WEB输入(会在页面顶部显示相关信息),插件和IM无效。


NUDGE
格式:nudge andoosea
功能:提醒用户进行更新。注意这个功能只支持WEB输入(会在页面顶部显示相关信息),插件和IM无效。


FAV
格式:fav andoosea
功能:收藏用户最近的更新。也可通过回复某条更新fav进行收藏。支持IM输入。


STATS
格式:stats
功能:查询关注自己和自己关注的用户数,及KWS。注意这个功能只支持WEB输入(会在页面顶部显示相关信息),插件和IM无效。


INVITE
格式:invite 13812345678
功能:短信发送邀请。这个功能还没测试。
注:twitter还提供其他一些手机更新的功能,因为没用过,这里就不介绍。


RT
格式:rt @andoosea 我刚写了关于twitter的使用技巧
功能:转载用户的更新。
注:RT是retweet的缩写,也是目前应用最频繁的快捷命令,不过这个并非出自官方。


VIA
格式:rt @andoosea via@andoosea 我刚写了关于twitter的使用技巧
功能:转载用户的更新。支持IM输入。
注:与RT搭配使用,区别在于RT跟的是转载的用户,VIA跟的是原创的用户。

F2Cont 1.1评论及回复页部分有问题代码修改


今天在回复别人的评论的时候,正好看到评论页有一处小BUG,具体表现在如果回复时不输入网址信息的话,会自动输入http://作为网址信息。这样就导致了评论里始终有网址这个链接,打开reply.php和replylogs.inc.php,查看http://所在的代码,具体如下:

  1. if (isset($_POST['homepage'])) {
  2.    if (strpos(";".$_POST['homepage'],"http://")<1) {
  3.     $_POST['homepage']="http://".$_POST['homepage'];
  4.    }
  5.   } else {
  6.    $_POST['homepage']="";
  7.   }


基本上两个文件里都有相同的代码。找到问题原点的话,接下来就是分析代码存在什么问题了,经过我一下午的逻辑分析,我发现问题出在isset上。这里的isset的意思就是如果网址存在信息,那么空信息算信息吗?显然,系统对代码解析后,反馈出来的结果告诉我们,为空信息的时候,这里的isset也是把它包含进去的。这样的话就等于说,如果评论时网址栏没输入任何信息的话,依然会执行{}中的代码。而在{}中的代码,用的是如果在网址函数中找不到http://的信息时,自动添加http://,因为这里用的算法是<1,也就是说0和为空都要添加http://,所以也就造成了如果评论时网址栏不输入任何信息的话,系统会自动添加http://并且记录到数据库中。

找到了问题的根本的话,就好解决了。抛弃isset函数,用!empty函数作非空判断。只要把isset更改成!empty就成了。具体代码如下:

  1. if (!empty($_POST['homepage'])) {
  2.    if (strpos(";".$_POST['homepage'],"http://")<1) {
  3.     $_POST['homepage']="http://".$_POST['homepage'];
  4.    }
  5.   } else {
  6.    $_POST['homepage']="";
  7.   }


最后考虑到留言板还有编辑/删除页也有网址输入栏,所以依样画葫芦,找到guestbook.inc.php和editdel.php,打开后找到http://所在,然后把所有isset改成!empty,这样就把问题全部解决了。

不过这些弄完之后我发现了一个新的问题,在编辑/删除页里。如果在此页中修改留言的网址栏,比方把http://www.test.com改成www.test.com,系统会自动补充http://。但是如果是修改评论的话,就不会自动补充。解决的办法其实非常简单。打开editdel.php,找到如下代码:

  1. if ($_GET['load']=="read" && is_numeric($postid) && is_numeric($id) && is_numeric($_GET['page'])){//评论
  2.   $Title=$strCommentsEditTitle;
  3.   $posturl="$PHP_SELF?load=".$_GET['load']."&page=".$_GET['page'];
  4.   $op_table=$DBPrefix."comments";


然后把上面这段代码之后,“//留言”这行代码之前的代码替换成如下代码,就可以解决了。不知道为什么,留言处代码被F2Cont团队修正了,评论处却没有。

  1. if (!empty($_POST['homepage'])){
  2.    $_POST['bookface']=!empty($_POST['bookface'])?$_POST['bookface']:"face1";
  3.    if (strpos(";".$_POST['homepage'],"http://")<1) {
  4.     $_POST['homepage']="http://".$_POST['homepage'];
  5.    } else {
  6.     $_POST['homepage']=$_POST['homepage'];
  7.    }
  8.  
  9.   $op_update=",homepage='".encode($_POST['homepage'])."',email='".encode($_POST['email'])."',face='".substr(encode($_POST['bookface']),4)."'";
  10.   }else{
  11.    $op_update="";
  12.   }


虽然都是些鸡毛蒜皮的小问题,而且最终我也都解决了,但是在过程中也折射出了我自身知识的匮乏。一个下午就泡在这个上面,最后发现仅仅是修改几个字就能完美解决。唉,今后我也会找点PHP知识来恶补一下,F2Cont 1.1应该还有很多值得修正的问题等着我去发现,并且把它解决掉!自己为自己先加油一下!

Twitter小栏目代码问题及博客的一些变更


昨天把『少女進行時』里面的栏目整合了一下,主要是把几个不可能再扩充内容进去的子栏目根据属性并成了两个子栏目,其他视频之类的归类到视频类子栏目下。这样『少女進行時』这个大栏目就有种“清爽啦”的感觉了。另外,今天为了适应日益增多的推特应用,把原来饭否的右边侧栏改造成了Twitter的实时更新。为了这个更新,今天忙了足足一个下午,先是架设Twip 3.0的时候,发现不管怎么引用都没有用。然后换回Twip 2.1后,又是一阵设置,设置完了还是没办法显示推特的消息。这时候我才想到排查一下代码是否有问题,嘿,还真是代码出问题了。大概是写代码的时候没注意“‘和"'的区别,导致大部分该是"'的地方都写成了“‘,怪不得系统总是显示无法载入JavaScript。改完之后,再修修补补一下一些小的疏漏和版面编排问题,终于让这个原来因为饭否而隐藏掉的栏目复活啦!

  1. <div id="twitter_div" style="margin-left:-25px;">
  2.  <h2 style="display: none;" >Twitter Updates</h2>
  3.  <ul id="twitter_update_list"></ul>
  4.  <a href="http://twitter.com/您的TwitterID" id="twitter-link" style="display:block;text-align:right;">来推我呀!</a>
  5.  </div>
  6.  <script type="text/javascript" src="http://API程序地址/twitter.js"></script>
  7.  <script type="text/javascript" src="http://API程序地址/statuses/user_timeline/您的TwitterID.json?callback=twitterCallback2&count=8"></script>


然后还要自己写一段JS码,保存为twitter.js,存放到API程序地址的路径下,这样就可以引用了。另外,API程序地址这里要填写您自己的,如果您没用Twip自己建立一个的话,可以去网上找找有没有别的您可以用的API程序。我架设的Twip服务,因为考虑到一些安全因素和空间环境,不对外开放,引用了也没有用。我已经限制只有我自己的推特账号才能使用。所以,翻源代码的同学就不要窃喜了。

附上JS代码:

  1. function twitterCallback2(twitters) {
  2.    var statusHTML = [];
  3.    for (var i=0; i<twitters.length; i++){
  4.      var username = twitters[i].user.screen_name;
  5.      var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
  6.        return '<a href="'+url+'">'+url+'</a>';
  7.      }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
  8.        return  reply.charAt(0)+'<a href="http://API程序地址/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
  9.      });
  10.      statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://API程序地址/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></li>');
  11.    }
  12.    document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
  13.  }
  14.  
  15. function relative_time(time_value) {
  16.    var values = time_value.split(" ");
  17.    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  18.    var parsed_date = Date.parse(time_value);
  19.    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  20.    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  21.    delta = delta + (relative_to.getTimezoneOffset() * 60);
  22.  
  23.   if (delta < 60) {
  24.      return 'less than a minute ago';
  25.    } else if(delta < 120) {
  26.      return 'about a minute ago';
  27.    } else if(delta < (60*60)) {
  28.      return (parseInt(delta / 60)).toString() + ' minutes ago';
  29.    } else if(delta < (120*60)) {
  30.      return 'about an hour ago';
  31.    } else if(delta < (24*60*60)) {
  32.      return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  33.    } else if(delta < (48*60*60)) {
  34.      return '1 day ago';
  35.    } else {
  36.      return (parseInt(delta / 86400)).toString() + ' days ago';
  37.    }
  38. }


把代码复制黏贴一下就行了,这代码虽然也是参考别人的,但是搞懂这个花去了整整一个下午,累死人了。不过搞懂之后也是有好处的,理解了Twip的作用后,就能用一些基于API的桌面客户端了。我现在用的是Twhirl,简单照着网上的教程设置API接口之后,使用起来完全没有问题,速度也很流畅,也算是对今天一下午付出的一个小小的回报吧!

页面风格符合我的喜好,速度也快:


attachments/201003/2466551997.jpg

另外还有一个收获,就是在整个折腾Twitter服务过程中,架设的一个PHP代理程序。不过,依然出于安全的考虑,这里不会给出具体的链接地址,只供我私人使用。但是呢,我修改之后的界面和风格,我自己还是非常喜欢的,贴出来给大家看一下吧!

attachments/201003/3941075539.jpg

copyright应该没错吧,我记得是2008年的剧场……

我突然发现,到目前为止,基本上所有能折腾想折腾的程序我都折腾过一遍了,⊙﹏⊙b汗!接下来就不折腾了,该是好好建设网站的时期了。不过,等等,好像忘记什么了。对了,对了,回光文学社还没折腾完,再⊙﹏⊙b汗!保存日志,再启动!

架设Pixmicat贴图版成功以及空间访问问题


这两天,本站所在的Hostmonster公司的服务器网络线路时常出现问题,具体反映在丢包率剧增上。引起的问题就是能勉强打开页面,但是信息显示不全,速度非常之慢。昨天更新唢呐之乌鸣第八话时就遇上这个问题,所以当日志写完发布后,就没办法就细节做进一步修改了,这也导致昨天到今天,关于唢呐之乌鸣第八话的发布日志一直都不正确。不过还好,下午办完事情回家后,线路恢复了,乘着这时候速度还行,我赶忙把昨天没做完的事情给做完了。

事后,我去美国主机侦探上找了相关的帖子,好像许多人都反映连接有问题,所出的状况也基本和我相同,但是奇怪的是,网通的线路和其他的线路都没有发生连接问题,而且用VPN和代理服务器都能很好地登陆Hostmonster的服务器。看起来,似乎这次出问题的都是电信这条线路出去的。不过在Hostmonster官方论坛上,我也看到了有个外国人也反映连接的问题,但是看官方的回答,似乎是他所在的服务器搬迁才导致访问不能,和我当时遇到的问题还完全不是一回事。然后我又回主机侦探论坛区刨根问底,看了几个帖子后,总结下来应该是电信连接Level3这条线路出现了状况导致的,而且其他使用Level3这条线路的国外空间商的用户也反映电信连接网站出现丢包率剧增的事情。那么一切就明朗起来了,关键字就是电信出故障了。不过,万幸,这个状况在今天晚些时候就再也没有出现过,否则的话,我是不知道我们万能的电信要到什么时候才会修好这个故障,特别是如果是我们这群使用国外空间的用户去反映问题的话。

打住,这个问题就不深入了,我还想要空间访问正常,我依然只是一个用了美国空间商服务的三好好人,绝对不会让这个IP被BAN的。

另外,为了弥补博客没有相册这个问题,我特别找了Pixmicat程序架了本站的贴图版,以后我如果找到什么好图的话,会第一时间在贴图版里贴出来,欢迎大家下载,外联也是被允许的。当然如果你有什么好看的图片想贴的话,也请不吝访问我那个小小的贴图版,只是有一点此处必须声明:严禁带有任何明示的图片,原则上不欢迎3D露肉图。也就是说,暗示没问题,露点图一律删除,第一次警告,多次触犯永封IP。还是那句话,我不想IP被BAN掉。这个独立IP可是收费很贵的哦!

贴图版地址:http://bbs.pineapple12.info
版面如下:

attachments/201003/9956299193.jpg

最后,预告一下,明天为了应付手机没办法上Twitter的关系,还会新增一个手机版Twitter的PHP程序,用的是Dabr改版的中文程序,奶嘴腿。具体页面我还会根据自己喜好修改一下。当然,因为也是考虑到某个伟大的国人程序,具体使用上将会低调行事,反正到明天再出个使用说明吧!

唉!累了一天,该是休息的时候了……

F2Cont 1.0升级F2Cont 1.1 Built 090810成功!


真是的,这个IE8太不稳定了,刚才写了那么多一下子消失了,简直就是悲剧啊!没办法,重写吧!说起来也怪遗憾的,前两天想看看F2Cont到底怎么了,却发现F2Cont的域名已经失效了。遥想一年多前,当看到F2Blog的继承者,F2Cont出现的时候,是多么的兴奋啊!当时,我马上就把原来用的F2Blog1.2系统升级到了F2Cont1.0系统,虽然还有这样那样的不足,但是,修修补补一下,用起来还是挺顺手的。更不用说,当时F2Cont对我而言就像是一滴甘露,增强的SPAM系统把原来困扰我的垃圾评论和回复的问题彻底解决了。

不过,没多久,F2Cont就出现了衰退的迹象。就在去年我人生失意的那段日子里,F2Cont最终定格在了2009年8月10日,最后一版F2cont 1.1 Build 090810也正是此次我所升级的最终版本。

可惜是可惜了点,但是我依然得感谢那些默默耕耘在F2Blog上的人们,是你们让我再一次看到了这个博客系统的希望,虽然是如此短暂,却也算是足够辉煌。原本在去年,我的生活即将发生改变的前夜,我是想弃用这款博客系统的。也许会换上更简单易用的,有更多插件的,但是当时的我真的不知道是不是我所喜欢的,是不是我需要的。当时的我在考虑什么呢?恩,也许是别人喜欢怎么样的博客系统,别人喜欢怎么样的有趣插件吧!在那个前夜,我是否想着要抛弃自我呢?也许吧。但是那个前夜,F2Cont的出现,让我看到那一丝微弱的希望,是她让我有了坚持下去的动力。如果,我是说如果,我如同抛弃F2Blog一样抛弃了我曾经的理想、信念乃至整个自我,我又会得到什么呢?这个问题我曾经辗转反侧过,我明确的知道那个答案是什么。也许我会得到更多我不知道是不是朋友的朋友,也许我会得到更多我不知道是出于内心还是场面的掌声,也许……我是说也许,我会真的体验到那份虚妄之中的虚妄优越感。这些又能让我的人生怎么样呢?更多的钱,一辆小汽车,一份体面的工作,又或者是一个我不知道是不是真心爱着的妻子?然而,这一切的代价呢?我还是我吗?

当我第一次遇到F2Blog的那天,我就知道,她是我的唯一。而当我人生中最黑暗的夜降临的时候,我也知道,属于我的唯一是什么?我坚信这份唯一能引领我走出人生的低谷、无尽的暗夜。夜虽漫长,但总也有太阳初升的时刻。我相信,虽然对于F2Blog来说,现在她还沉浸在黑夜中,但是总有一天,总有一天,属于她的黎明,会到来。

正如我前两天在Twitter里说的:

引用:
F2cont徹底雜草了,唉看來F2blog的半條命又沒有了,作為一個使用了三年的忠實用戶實在為它可惜。不過,我還是會一直用下去,直到這個世界上的所有流覽器再也容不下它為止。如果真有那一天,如果我還有點時間,有點精力,有點閒錢的話,我會出資請人把這個程序做到最好。


黎明前的黑暗让人难耐,但是请相信我,黎明总会到来。最后,在此感谢所有为F2Blog付出心血和努力的人,也感谢仍然在使用着F2Blog的人们,是你们支撑着我前行,让我还能坚持着自己的信条。

永远的Free & Freedom!

F2blog的年龄插件修改及服务器PHP.ini时区设置


今天打开博客,发现一个问题,星雲の誕生这个小栏目里两行文字发生了错误,估计是因为天数归零之后消失导致后面一个换行符一起被吞掉的原因。不多说,挂上FTP,把问题插件文件下下来,分别是birth.php和birth.js。稍许研究了一下birth.php,发现这里面没有什么大问题,看来问题出在JS程序里,打开JS文件。关键数据如下:

  1. rstr="<font color='"+textcolor+"'>"+name + "</font><font color='"+textcolor+"'>" + t_yy + "</font>年";
  2.    if (t_mm > 0)
  3.       rstr=rstr + "<font color='"+textcolor+"'>"+t_mm + "</font>个月";
  4.    if (t_dd > 0)
  5.       rstr=rstr + "又<font color='"+textcolor+"'>" + t_dd + "</font>天<br/>";
  6.    return rstr;


从这行代码来看,似乎是没什么问题,然后我又注意到<br/>的位置,似乎在天数后面,如果这天正好是整一个月呢?看代码的写法是只写出大于0的数值,也就是说如果是=0的情况下,是不写的,也就是说,如果天数是0的时候,是不输出这行代码的。换而言之,就是被吃掉的那个换行符被发现了的说。之后就简单多了,直接在月份和天数的输出范围处添加大于等于,这样就保证了即使是0,也能够输出。

修改后的代码如下:

  1. rstr="<font color='"+textcolor+"'>"+name + "</font><font color='"+textcolor+"'>" + t_yy + "</font>年";
  2.    if (t_mm >= 0)
  3.       rstr=rstr + "<font color='"+textcolor+"'>"+t_mm + "</font>个月";
  4.    if (t_dd >= 0)
  5.       rstr=rstr + "又<font color='"+textcolor+"'>" + t_dd + "</font>天<br/>";
  6.    return rstr;


顺利解决问题,可喜可贺。


搞完这个插件,我突然发现今天上传的图片依然进入二月份的文件夹,这就有点奇怪了。然后想一想自己的服务器设在美国,所以应该用的是美国的服务器时间。有可能因为时差的关系,导致系统默认现在依然是2月28日。于是乎,我把PHP.ini一并下载下来,找到Timezone语句的写法,归类到Module Setting项下,再上传图片,三月份的分类目录已经建立,问题解决。

如果您也遇到和我一样的问题的话,具体语法如下:

  1. [Date]
  2. ; Defines the default timezone used by the date functions
  3.  date.timezone = Asia/Shanghai

F2Blog与17岁教……


岁月不饶人啊,但是有办法使它显得还在驻足停留,而且只是很简单的JS代码就能够办到,照着下面的代码改一下Blog页面就成了……

  1. <SCRIPT type="text/javascript">
  2.      var timedate= new Date("February 17,XXXX");//年龄格式如前修改,想要几岁就把那个岁数的生日写上去。
  3.      var now = new Date();
  4.      var date = now.getTime() - timedate.getTime();
  5.      var time = Math.floor(date / (1000 * 60 * 60 * 24));
  6.      document.write(" XXXの年龄:17岁零<font style='color:#ff0000;font-family:Verdana;'><b>"+time +"</b></font>天");</SCRIPT>


实际效果如下图:

attachments/201002/5204776552.jpg

yeah!永远的17岁教。不过说起来,昨天为了实现这个效果跑了很多弯路,本来是想用下面一个F2Blog的插件来实现的,不曾想怎么修改都没办法实现想要的功能,问了专门从事编程的朋友,也没有办法解决。于是一气之下索性自己试试看以前学过的JS代码,重新写了一个简单的,没想到竟成功了,而且代码也不复杂,当时就泪流满面,满脸黑线……

不过既然对F2Blog这个插件花了那么多时间摸熟结构,也改了一些东西,不如能用就用吧,于是有了星雲の誕生这个侧边栏小栏目。里面记述了很多有意义的东西所经历的时间,也算是对自己人生的一个记录吧!在今天这么个特别的日子里……