K. Weblog

This is my weblog,in 2010y.

复制Discuz,“火车头”的不厚道。

作者:Kid(小K)

地址:http://Blog.KidX.Cn

前几天听闻火车头推出直接复制 Discuz/PHPWind 的模块/工具。

(有几张截图,目前未正式发布,不能完全断定真假)

终于还有有人打破了那最后一道屏障。

就像有的人说的,这仿佛就是采集这一块的原子弹。

目的是什么?。。

为了火车头的名气?。(目前是首创)

为了利益?。(改成收费软件)

为了炫耀?。(呵。)

我没用过这套软件,因为我从来不采集东西。我根本不作站。

我知道这是一套好软件。

但我现在有点怀疑作者不厚道了。。

站在程序员的角度说。

复制Discuz目前没什么太大难度,一般懂一点采集的人都可以办到。

但大家都没有去做。

就好像复制别的站点一样。

记得我以前给你们一个演示,把整个落伍复制了的(不是那个小偷)

只是复制,不是采集。有本质区别的。

网上见多了,也不算稀奇,但基本上,能够做到的人,都没有把方法公布出来。

这是为什么?。。

大家都遵守一个底线。

那是人家的成果,落伍是鱼一手搞起来的。

当然,也离不开我们这些落伍者的支持。

让网上“落伍”泛滥,能有什么好处?。。

名?利?。

把RP丢了,名利又有什么用?。。

采集,采集。。

给互联网带来了什么?。。

大量的垃圾站。大量的病毒。

是的,带动了产业链的发展。

域名,空间,seo等都超速发展起来了。

但后果是什么?。。

为什么现在报道互联网没有什么好消息?。。

流氓软件,木马,银行卡,游戏B。

现在作站都是为了什么?。。

利益至上。

是的。

人都是为了金钱活着。。

你放个马,一个3毛。。

人家可能为了这个格盘,损失岂止3毛?。。

站长们。做人要厚道。

唉。。不多说了。。

钱嘛。。呵呵。。


[原创](Abstract Factory)抽象工厂模式简例

///抽象工厂简例

 

 

/// <summary>

/// 定义一个用户基类接口

/// </summary>

interface users

{

       /// <summary>

       /// 无返回值方法,输出名字

       /// </summary>

       void Name();

}

 

/// <summary>

/// 定义一个管理员类,继承users接口

/// </summary>

class admin:users

{

       #region users 成员

 

       /// <summary>

       /// 实现接口方法,输出管理员名字

       /// </summary>

       public void Name()

       {

              Console.WriteLine("My Name is Admin");

       }

 

       #endregion

 

}

 

/// <summary>

/// 定义一个普通用户类,继承users接口

/// </summary>

class common:users

{

       #region users 成员

 

       /// <summary>

       /// 实现接口方法,输出普通用户名字

       /// </summary>

       public  void Name()

       {

              Console.WriteLine("My Name is Common");

       }

 

       #endregion

 

}

 

/// <summary>

/// 定义一个抽象工厂

/// </summary>

abstract class abstractFactory

{

       /// <summary>

       /// 返回工厂类型

       /// </summary>

       /// <returns>工厂类</returns>

       public static abstractFactory GetInstrance()

       {

              if(new Random().Next(10)%2==0)

              {

                     return new adminFactory();//adminFactory继承自abstractFactory,所以可返回

              }

              else

              {

                     return new commonFactory();//commonFactory继承自abstractFactory,所以可返回

              }

       }

 

       /// <summary>

       /// 定义抽象方法,实例化一个工厂

       /// </summary>

       /// <returns>用户基类/接口</returns>

       public abstract users CreateFactory();

}

 

/// <summary>

/// 管理员工厂,继承自抽象工厂

/// </summary>

class adminFactory:abstractFactory

{

       /// <summary>

       /// 实现抽象方法,创建工厂

       /// </summary>

       /// <returns>用户基类/接口</returns>

       public override users CreateFactory()

       {

              return new admin();

       }

 

 

}

 

/// <summary>

/// 普通用户工厂,继承自抽象工厂

/// </summary>

class commonFactory:abstractFactory

{

       /// <summary>

       /// 实现抽象方法,创建工厂

       /// </summary>

       /// <returns>用户基类/接口</returns>

       public override users CreateFactory()

       {

              return new common();

       }

 

}

 

客户端这样使用:

 

static void Main(string[] args)

{

       for(int index=0;index<=10;index++)

       {

              abstractFactory af=abstractFactory.GetInstrance();

  

              af.CreateFactory().Name();

       }

}

 


恼人的TrackBack垃圾信息

没想到开放TrackBack会收到这么多垃圾信息。。

以前使用Msn空间的时候也遇到过。。

不过当时没有太在意。

没想到现在俺的小小的blog也遭受不幸。。

唉。。

写这个功能本是好事。

可现在。。

还有评论。。

那个谁。。居然发那种信息。。

我是不想查他IP。。

是不是该加个注册码了?。。

嗯。。应该。。


缓存,速度

haha...

给主要的blog显示部分加了缓存,首页访问一遍后,全部缓存。。

HTML了

速度没得说了。不过翻页那里改了,缓存后asp.net事件无法执行哦。。

各位要使用缓存的请注意一下。。

嗯了。好了。飞咯。。!


[原创]根据在线情况,显示不同论坛头像

原创作品,请勿转载,谢谢

这里还是利用了本人提供的Robber()类,如有不明请查看本人帖子

http://www.im286.com/viewthread.php?tid=1539095

添加引用,引入kClass(就是Robber类).导入命名空间clsRobber

声明:

protected Bitmap b;

一个user接收传入值,也就是用户名(这里提醒一点.可能有的人会无法正确处理中文字符)

中文处理解决办法:

修改Web.config

requestEncoding="gb2312" 
responseEncoding="gb2312"

修改为:gb2312,就OK了...

开始截取首页在线列表:

在线列表地址如下:http://www.im286.com/index.php?showoldetails=yes#online

查看源文件后,列表块如下:

我们以<a name="online">开头,以</html>结尾就够了,不用那么精细..^^

然后判断用户是否在线:

判断传入的user值,在截取后的页面中的位置.位置如果==-1,就说明没有在其中,也就是不在线.

如果!=-1,不管等于多少,都说明在线.

如果在线,就声明      bmap=new Bitmap(Server.MapPath("online.jpg"));

如果不在线,就声明   bmap=new Bitmap(Server.MapPath("offline.jpg"));

保存图片:

声明一个MemoryStream对象,然后保存bmap到这个对象.

bmap.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);

输出:

Response.ContentType="image/jpeg";

Response.BinaryWrite(ms.ToArray());

完成!

完整代码如下:

private void Page_Load(object sender, System.EventArgs e)
              {
                     try
                     {
                            string user=Request.QueryString["user"];
 
                            if(this.IsPostBack ||user==null)
                                   return;
                    
                            Robber r=new Robber("http://www.im286.com/index.php?showoldetails=yes#online");
                            r.Rob();
                            r.Cut("<tr class=\"header\">",2,"</html>",1);
                            bool online=r.Value.IndexOf(user)==-1?false:true;
                    
                            if(online)
                                   bmap=new Bitmap(Server.MapPath("online.jpg"));
                            else
                                   bmap=new Bitmap(Server.MapPath("offline.jpg"));
 
                            MemoryStream ms=new MemoryStream();
                            bmap.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
                            Response.ContentType="image/jpeg";
                            Response.BinaryWrite(ms.ToArray());
                            ms.Close();
                     }
                     catch(Exception ea)
                     {
                            string eas=ea.Message;
                     }
                     finally
                     {
                            if(bmap!=null)
                                   bmap.Dispose();
                     }
 
              }

嗯,明白了吧.其实就是截取落伍首页的在线列表,然后判断其中是否有此人存在,由于论坛的统计不是实时更新,所以有一点点不准确.

 


UrlRewrite功能实现了

昨天实现的,后来写了,不知道为什么没有发出来。。

用Global实现的。。还好不麻烦。。

功能逐渐完善ing...

可是。项目来了。。

估计又要忙一个月了。。

好了好了。。有事做总比闲着好吧。。

在慢慢的锻炼中成长。。嗯。成长。。哈。

对了。忘了给演示:

访问:http://blog.kkzone.net/222.aspx

一样:http://blog.kkzone.net/default.aspx?id=222

一些链接什么的还没改,到时候再说


Wu.....完成了..

搞定搞定了。。

基本都搞定了。。

现在可以叫一个完整的博客系统了。

除了tags还没有加,这个不是主要功能,无所谓了。

首页也基本完成,一些内容以后再改改吧。

大体上已经完成了。

上个星期五上传的时候居然。。忘记检查一下了。

结果click事件又莫名其妙掉了。我还。。。微软的。。

算了。好像是 <%#  %>嵌套在repeater里面就会这样。。

trackback还是搞不定多语言了。。

后来看了下,因为response和request时候好像就已经在web.config里面配置成utf8了。

所以。。。有机会再看看吧。。utf8也不错。。大势所趋嘛

然后再看看url rewrite,以及效率问题。。

效率问题得重点。。。嗯。。重点。。


自己测试自己的TrackBack!

测试一下!。嗯了。。Test By Kid

麻烦的TrackBack

今天弄了一天TrackBack。。结果。。

发送简单,一下完成了。。

后来看文档。说什么发送后会返回一个xml。标示错误什么的。。

想了半天,我一发送他返回到哪里呢?。提交后就返回?。。

写了个WebResponse和Stream接收返回的数据。。

结果还是有问题。。

这个时候,csdn上面的求助贴有人回复了。。

根据提示。下了个x2blog,开源的。。

看到支持trackback,而且还是国人写的(老外写的代码看着真的晕

打开。找到trackback。。结果。。。

我。。。找到那个地方。。发现代码写的跟我写的差不多。。

不过。。是一片绿色。。全部注释了

注释写的是,目前没有错误处理,暂时不用。。。

。。。。我。。。

算了。。

他接收trackback传入的是Request,其实好像还是提交的form。。

搞了快一天。就搞这么个玩意。。


利用Robber写的IP地址和手机号查询程序

HTML页面:

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="Robber_Demo2.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
        <head>
                <title>IP地址和手机号查询</title>
                <link rel="stylesheet" href="http://www.123cha.com/theme/front.css" type="text/css" media="all">
        </head>
        <body MS_POSITIONING="GridLayout">
                <div id="MainSearchBox">
                        <form id="form1" runat="server">
                                IP地址和手机号查询&nbsp;&nbsp;
                                <asp:TextBox id="tbValue" runat="server"></asp:TextBox>&nbsp;
                                <asp:Button id="btnAction" runat="server" Text="Action"></asp:Button>
                        </form>
                </div>
                <div id="ResultBox">
                <%#values%>
                </div>
        </body>
</html>

CS页面:

public string values;
      
              private void Page_Load(object sender, System.EventArgs e)
              {
                     if(this.Request.Form.Count==0 || this.Request.Form["tbValue"].Trim()=="")
                            return;
                     Robber r=new Robber();
                     r.Src=string.Format("http://www.123cha.com/ip/?q={0}",Request.Form["tbValue"]);
                     r.Rob();
                     r.Cut("<span id=\"cresult\">","    </span>");
                     r.Remove("<ul>",2,"</ul>",2);
                     values=r.Value;
                     this.DataBind();
              }

源码请到这里下载http://www.im286.com/viewthread.php?tid=1539095&extra=page%3D1&page=3 25楼




Name:Kid
Mail:guanjun#live.cn
QQ:6661635
Work:Coder&Designer

最近评论

Comment RSS

主机提供

风云互联提供高速稳定带宽支持