<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[生活就是扯淡]]></title>
<link>http://blog.pfan.cn/tiay</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[自定义php分页函数]]></title>
		<link>http://blog.pfan.cn/tiay/29753.html</link>
		<description><![CDATA[每次编写列表性质的页面，几乎都要写上一段分页的程序。最近终于决心一劳永逸——自定义一个分页函数，并保存在“pageft.php”文件里。要用到分页的地方，就直接包含“pageft.php”文件，并调用这个函数就行了。编写这个函数时，尽量注意了程序的可移植性和易用性，下面就是这个函数：
&lt;?//为了避免重复包含文件而造成错误，加了判断函数是否存在的条件：if(!function_exists(pageft)){ //定义函数pageft(),三个参数的含义为：//$totle：信息总数；//$displaypg：每页显示信息数，这里设置为默认是20；//$url：分页导航中的链接，除了加入不同的查询信息“page”外的部分都与这个URL相同。//　　　默认值本该设为本页URL（即$_SERVER["REQUEST_URI"]），但设置默认值的右边只能为常量，所以该默认值设为空字符串，在函数内部再设置为本页URL。function pageft($totle,$displaypg=20,$url=''){
//定义几个全局变量： //$page：当前页码；//$firstcount：（数据库）查询的起始项；//$pagenav：页面导航条代码，函数内部并没有将它输出；//$_SERVER：读取本页URL“$_SERVER["REQUEST_URI"]”所必须。global $page,$firstcount,$pagenav,$_SERVER;
//为使函数外部可以访问这里的“$displaypg”，将它也设为全局变量。注意一个变量重新定义为全局变量后，原值被覆盖，所以这里给它重新赋值。$GLOBALS["displaypg"]=$displaypg;
if(!$page) $page=1;
//如果$url使用默认，即空值，则赋值为本页URL：if(!$url){ $url=$_SERVER["REQUEST_URI"];}
//URL分析：$parse_url=parse_url($url);$url_query=$parse_url["query"]; //单独取出URL的查询字串if($url_query){//因为URL中可能包含了页码信息，我们要把它去掉，以便加入新的页码信息。//这里用到了正则表达式，请参考“PHP中的正规表达式”（htt]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-30 17:18:00</pubDate>
		</item>
				<item>
		<title><![CDATA[php面象对象数据库操作类]]></title>
		<link>http://blog.pfan.cn/tiay/29752.html</link>
		<description><![CDATA[&lt;?php//*******************************************************************//此处构造一个数据库操作类，封装所有数据库操作//可以扩展便于后台管理程序的使用Class MySQLDB { &nbsp;&nbsp; var $host; &nbsp;&nbsp; var $user; &nbsp;&nbsp; var $passwd; &nbsp;&nbsp; var $database;&nbsp;&nbsp; var $conn; 
&nbsp;&nbsp; //利用构造函数实现变量初始化 &nbsp;&nbsp; //同时连接数据库操作&nbsp;&nbsp; function MySQLDB($host,$user,$password,$database) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;host = $host; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;user = $user; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;passwd = $password; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;database = $database; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;conn=mysql_connect($this-&gt;host, $this-&gt;user,$this-&gt;passwd) or &nbsp;&nbsp;&nbsp; &nbsp;die("Could not connect to $this-&gt;host"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql_select_db($this-&gt;database,$this-&gt;conn) or &nbsp;&nbsp;&nbsp; &nbsp;die("Could not switch to database $this-&gt;database"); &nbsp;&nbsp; } 
&nbsp;&nbs]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-30 17:16:00</pubDate>
		</item>
				<item>
		<title><![CDATA[asp生成word]]></title>
		<link>http://blog.pfan.cn/tiay/29667.html</link>
		<description><![CDATA[&lt;%
'这里写你的数据库连接,自己写上数据库连接代码Response.Buffer&nbsp;=&nbsp;True&nbsp;'这个好像得留着Set&nbsp;rs&nbsp;=&nbsp;Server.CreateObject("ADODB.Recordset")sql="select&nbsp;*&nbsp;from&nbsp;ceshi&nbsp;where&nbsp;id=1"rs.open&nbsp;sql,conn,3,3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;fso,&nbsp;MyFile&nbsp;dim&nbsp;sFileName&nbsp;dim&nbsp;mystring&nbsp;mystring="这里的内容下面有说明"&nbsp;Set&nbsp;fso&nbsp;=&nbsp;CreateObject("Scripting.FileSystemObject")&nbsp;&nbsp;'用到fso&nbsp;&nbsp;&nbsp;&nbsp;sFileName&nbsp;=&nbsp;""&amp;rs("id")&amp;".doc"&nbsp;&nbsp; //根据id来取名称，可以自行修改&nbsp;Set&nbsp;MyFile&nbsp;=&nbsp;fso.CreateTextFile(Server.MapPath(".")&nbsp;&amp;&nbsp;"\word\"&amp;sFileName,&nbsp;True)&nbsp;'文件放在当前目录的word/下myString="这里是你预先排好的word文档，要填的地方都空好了，怎么弄底下告诉！"&nbsp;MyFile.WriteLine(myString)&nbsp;MyFile.Close&nbsp;&nbsp;'关闭文件%&gt;'=============下面是如何弄mystring里的内容注：myString=""&nbsp;里面到底是什么？用word做一个你要的格式的文档，都排好了，把要填的地方做好标记，比如写几个字什么的。然后“另存为”web页面。本文所说的是文档里没有图片的情况，有的话我也不会。到你的硬盘里找到这个web页面，打开，查看源文件，ctrl+a,ctrl+c,在word里，ctrl+N]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-26 08:58:00</pubDate>
		</item>
				<item>
		<title><![CDATA[PHP生成Excel]]></title>
		<link>http://blog.pfan.cn/tiay/29666.html</link>
		<description><![CDATA[&lt;?php&nbsp;ob_start();&nbsp;define("FILETYPE","xls");&nbsp;header("Content-type:application/vnd.ms-excel");&nbsp;if(FILETYPE=="xls")&nbsp;header("Content-Disposition:filename=report.xls");&nbsp;else&nbsp;header("Content-Disposition:filename=report.csv");&nbsp;echo&nbsp;"姓名\t年龄\t性别\n";&nbsp;//echo&nbsp;"efg\t\hij\t\n";&nbsp;echo&nbsp;"张三\t25\tmale";&nbsp;echo&nbsp;"\n李四\t27\tmale";&nbsp;echo&nbsp;"\n王五\t20\tfemale";&nbsp;?&gt;&nbsp;]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-26 08:53:00</pubDate>
		</item>
				<item>
		<title><![CDATA[phpmyadmin显示乱码的问题]]></title>
		<link>http://blog.pfan.cn/tiay/29665.html</link>
		<description><![CDATA[修改phpmyadmin里libraries/select_lang.lib.php一'zh-gb2312'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;array('zh|chinese&nbsp;simplified',&nbsp;'chinese_simplified-gb2312',&nbsp;'zh',&nbsp;'中文'),改为'zh-gb2312-utf-8'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;array('zh|chinese&nbsp;simplified',&nbsp;'chinese_simplified-gb2312',&nbsp;'zh',&nbsp;'中文'),二'gb2312'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;'gb2312',改为'gb2312'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;'latin1','utf-8'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;'utf-8,改为'utf-8'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;'latin1',然后在phpmyadmin里language选择时选择上面那个&nbsp;中文]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-26 08:52:00</pubDate>
		</item>
				<item>
		<title><![CDATA[SQL注入天书]]></title>
		<link>http://blog.pfan.cn/tiay/29662.html</link>
		<description><![CDATA[[引用地址:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=308]随着B/S模式应用开发的发展，使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高，程序员的水平及经验也参差不齐，相当大一部分程序员在编写代码的时候，没有对用户输入数据的合法性进行判断，使应用程序存在安全隐患。用户可以提交一段数据库查询代码，根据程序返回的结果，获得某些他想得知的数据，这就是所谓的SQL Injection，即ＳＱＬ注入。
ＳＱＬ注入是从正常的WWW端口访问，而且表面看起来跟一般的Web页面访问没什么区别，所以目前市面的防火墙都不会对ＳＱＬ注入发出警报，如果管理员没查看IIS*志的习惯，可能被入侵很长时间都不会发觉。
但是，ＳＱＬ注入的手法相当灵活，在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析，构造巧妙的SQL语句，从而成功获取想要的数据，是高手与“菜鸟”的根本区别。
根据国情，国内的网站用ASP+Access或SQLServer的占70%以上，PHP+MySQ占L20%，其他的不足10%。在本文，我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧，PHP注入的文章由NB联盟的另一位朋友zwell撰写，希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇，因为部分人对注入的基本判断方法还存在误区。大家准备好了吗？Let's Go...
入 门 篇
如果你以前没试过ＳＱＬ注入的话，那么第一步先把IE菜单=&gt;工具=&gt;Internet选项=&gt;高级=&gt;显示友好 HTTP 错误信息前面的勾去掉。否则，不论服务器返回什么错误，IE都只显示为HTTP 500服务器错误，不能获得更多的提示信息。
第一节、ＳＱＬ注入原理
以下我们从一个www.19cn.com开始（注：本文发表前已征得该站站长同意，大部分都是真实数据）。
在网站首页上，有名为“IE不能打开新窗口的多种解决方法”的链接，地址为：http://www.19cn.com/showdetail.asp?id=49，我们在这个地址后面加上单引号’，服务器会返回下面的错误提示：
Microsoft JET Database Engine 错误 '80040e14' 
字符串的语法错误 在查询表达]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-25 17:06:00</pubDate>
		</item>
				<item>
		<title><![CDATA[图片无限滚动]]></title>
		<link>http://blog.pfan.cn/tiay/29653.html</link>
		<description><![CDATA[1、图片向左无限滚动====================================================&lt;div id=demod style=overflow:hidden;height:157;width:714&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table align=left cellpadding=0 cellspace=0 border=0&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td id=demo7 valign=top&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table width='100%' cellpadding='0' cellspacing='5' border='0' align='center'&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr valign='top'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align='left'&gt;&lt;img src="http://www.sh7135.net/2006demo/images/default_r1_c4.gif"&gt;&lt;/td&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-25 12:16:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C#多线程参数传递浅析]]></title>
		<link>http://blog.pfan.cn/tiay/29652.html</link>
		<description><![CDATA[我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道，.Net使我们很容易就可以创建一个线程，但是它提供的创建线程和启动线程的方法没有明显的提供参数，假如我们要用线程来启动类里面一个带参数的方法该怎么办？下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程，我建立下面的一个.NET类，它也是要用线程启动的方法的载体。类如下所示：&nbsp; 
using System; namespace WindowsApplication1 { 　/// &lt;summary&gt; 　/// Summary description for UrlFetcher. 　/// &lt;/summary&gt; 　public class MyClass{ 　　// for method 1 　　private string _parameter; 　　public MyClass(string parameter){ 　　　this._parameter = parameter; 　　} 　public void MyMethod1(){ 　　if(this._parameter!=null){ 　　　// do something 　　　Console.Write(this._parameter); 　　} 　} 　// for method 2 　public MyClass(){} 　// this method is private,But it can be public or other 　private void MyMethod2(string parameter){ 　　// do something 　　Console.Write(parameter); 　} 　// Because delegate WaitCallback's parameter Type is object&nbsp; 　// I will convert it to string. 　public void MyMethod2(object parameter){ 　　this.MyMethod2((string)parameter); 　} 　// for method 3 　public string MyMeth]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-25 12:14:00</pubDate>
		</item>
				<item>
		<title><![CDATA[用PHP5轻松解析XML]]></title>
		<link>http://blog.pfan.cn/tiay/29549.html</link>
		<description><![CDATA[用 sax 方式的时候，要自己构建3个函数，而且要直接用这三的函数来返回数据，要求较强的逻辑。在处理不同结构的 xml 的时候，还要重新进行构造这三个函数，麻烦！
用 dom 方式，倒是好些，但是他把每个节点都看作是一个 node,，操作起来要写好多的代码，麻烦！
网上有好多的开源的 xml 解析的类库，以前看过几个，但是心里总是觉得不踏实，感觉总是跟在别人的屁股后面。
这几天在搞 Java，挺累的，所以决定换换脑袋，写点 PHP 代码，为了防止以后 XML 解析过程再令我犯难，就花了一天的时间写了下面一个 XML 解析的类，于是就有了下面的东西。
实现方式是通过包装“sax方式的解析结果”来实现的。总的来说，对于我个人来说挺实用的，性能也还可以，基本上可以完成大多数的处理要求。
功能: 1\ 对基本的 XML 文件的节点进行 查询 / 添加 / 修改 / 删除 工作。 2\ 导出 XML 文件的所有数据到一个数组里面。 3\ 整个设计采用了 OO 方式,在操作结果集的时候，使用方法类似于 dom
缺点: 1\ 每个节点最好都带有一个id(看后面的例子)，每个“节点名字”=“节点的标签_节点的id”，如果这个 id 值没有设置，程序将自动给他产生一个 id，这个 id 就是这个节点在他的上级节点中的位置编号，从 0 开始。 2\ 查询某个节点的时候可以通过用“|”符号连接“节点名字”来进行。这些“节点名字”都是按顺序写好的上级节点的名字。
使用说明： 运行下面的例子，在执行结果页面上可以看到函数的使用说明 
代码是通过 PHP5 来实现的，在 PHP4 中无法正常运行。
由于刚刚写完，所以没有整理文档，下面的例子演示的只是一部分的功能，代码不是很难，要是想知道更多的功能，可以研究研究源代码。
目录结构: 
test.php test.xml xml / SimpleDocumentBase.php xml / SimpleDocumentNode.php xml / SimpleDocumentRoot.php xml / SimpleDocumentParser.php
文件:test.xml ＜?xml version="1.0" encoding="GB2312"?&gt; ＜shop&gt; ＜name&gt;华联＜/name&gt;]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-20 13:58:00</pubDate>
		</item>
				<item>
		<title><![CDATA[添加水印和生成缩略图!]]></title>
		<link>http://blog.pfan.cn/tiay/29548.html</link>
		<description><![CDATA[一、为图片添加水印
&lt;%Dim Jpeg&nbsp;&nbsp; '//声明变量
Set Jpeg = Server.CreateObject("Persits.Jpeg") '//调用组件
Jpeg.Open Server.MapPath("aaa.JPG") '//源图片位置
Jpeg.Canvas.Font.Color = &amp;H000000 '//水印字体颜色
Jpeg.Canvas.Font.Family = "宋体" '//水印字体
Jpeg.Canvas.Font.Size = 14 '//水印字体大小
Jpeg.Canvas.Font.Bold = False　'//是否粗体，粗体用：True
Jpeg.Canvas.Font.BkMode = &amp;HFFFFFF '//字体背景颜色
Jpeg.Canvas.Print 10, 10, "梅河口论坛 MHKBBS.COM" '//水印文字，两个数字10为水印的xy座标
Jpeg.Save Server.MapPath("aaa_05.jpg") '//生成有水印的新图片及保存位置
Set Jpeg = Nothing '//注销组件，释放资源
Response.Write "&lt;img src=aaa_05.jpg&gt;" '//在该页显示生成水印后的图片%&gt;________________________________________
二、生成缩略图
&lt;%Dim Jpeg '//声明变量
Set Jpeg = Server.CreateObject("Persits.Jpeg") '//调用组件
Jpeg.Open Server.MapPath("aaa.JPG") '//原图位置
Jpeg.Width = Jpeg.OriginalWidth/4 '//设图片宽度为原图的四分之一
Jpeg.Height = Jpeg.OriginalHeight/4 '//设图片高度为原图的四分之一
Jpeg.Sharpen 1, 130 '//设定锐化效果
Jpeg.Save Server.MapPath("aaa_small.jpg") '//生成缩略图位置及名称
Set Jpeg = Nothing '//注销组件，释放资源]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-20 13:57:00</pubDate>
		</item>
				<item>
		<title><![CDATA[三级联动下拉(无组件)]]></title>
		<link>http://blog.pfan.cn/tiay/29547.html</link>
		<description><![CDATA[[转:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=782]
&lt;form name="isc" method="post" action="sanjiliandong.asp"&gt;&nbsp; &lt;table width="572" height="53" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px solid black;"&gt;&nbsp;&nbsp;&nbsp; &lt;tr align="center"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="177"&gt; &lt;select name="s1"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option selected&gt;请选择省&lt;/option&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;&lt;/td&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="191"&gt;&lt;select name="s2"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value=" " selected&gt;请选择市&lt;/option&gt;&nbsp;&nbsp;&nbsp;&nb]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-20 13:56:00</pubDate>
		</item>
				<item>
		<title><![CDATA[不经保存，直接读取上传文件的内容]]></title>
		<link>http://blog.pfan.cn/tiay/29156.html</link>
		<description><![CDATA[&lt;%@ Page Language="C#" AutoEventWireup="true" %&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;script runat="server"&gt;
&nbsp; protected void btnUpload_Click( object sender, EventArgs e )&nbsp; {&nbsp;&nbsp;&nbsp; if (FileUpload1.PostedFile.InputStream.Length &lt; 1)&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Msg.Text = "请选择文件。";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; string FileName = FileUpload1.FileName;&nbsp;&nbsp;&nbsp; if (FileName.ToLower().IndexOf(".txt") == -1)&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Msg.Text = "请选择文本文件。";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; int FileLen = FileUpload1.PostedFile.ContentLength;&nbsp;&nbsp;&nbsp; byte[] input = new byte[FileLen];&nbsp;&nbsp;&nbsp; System.IO.Stream UpLoadStream = FileUpload1.PostedFile.InputStream;&nbsp;&nbsp;&nbsp; UpLoadStream.Read(input, 0]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 09:13:00</pubDate>
		</item>
				<item>
		<title><![CDATA[.net&nbsp;面试题20070531]]></title>
		<link>http://blog.pfan.cn/tiay/29155.html</link>
		<description><![CDATA[http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=278
1 (1)面向对象的语言具有__继承性_性、_封装性_性、_多态性 性。(2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型。1.c#中的三元运算符是__?:__2.当整数a赋值给一个object对象时，整数a将会被__装箱___?3.类成员有__3__种可访问形式？4.public static const int A=1;这段代码有错误么？是什么？ const成员都是static所以应该去掉static5.float f=-123.567F;int i=(int)f;i的值现在是_-123____?6.利用operator声明且仅声明了==，有什么错误么? 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="7.委托声明的关键字是___ delegate ___?8.用sealed修饰的类有什么特点？不可被继承9.在Asp.net中所有的自定义用户控件都必须继承自_ System.Web.UI.UserControl _______?10.在.Net中所有可序列化的类都被标记为__[serializable]___?11.在.Net托管代码中我们不用担心内存漏洞，这是因为有了_ gC __?12.下面的代码中有什么错误吗？_ abstract override 是不可以一起修饰______using System;class A{public virtual void F(){Console.WriteLine("A.F");}}abstract class B:A{public abstract override void F();}13.当类T只声明了私有实例构造函数时，则在T的程序文本外部，_不可以_（可以 or 不可以）从T派生出新的类，_不可以_（可以 or 不可以）直接创建T的任何实例。14.下面这段代码有错误么？case():不行 default;switch (i){case():CaseZero();break;case 1:CaseOne();break;case 2:dufault;CaseTwo();break;}15.在.Ne]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 09:09:00</pubDate>
		</item>
				<item>
		<title><![CDATA[C#验证Email是否真正存在,不是验证邮件格式,是邮件地址是否存在]]></title>
		<link>http://blog.pfan.cn/tiay/29154.html</link>
		<description><![CDATA[[转自:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=279]
在以往的编程中，比如编写用户的资料时，有时需要确认用户输入的Email是否真实有效，以前我们最多只能做到验证Email是否包含了某些特殊的字符，比如"@",".",".com"等,做到的只是判断了Email的合法性，证明用户填写的Email格式是正确的，但是这个Email是否真正的存在于网络中，则没有办法。 　首先需要大家了解一下SMTP协议。 1.SMTP是工作在两种情况下：一是电子邮件从客户机传输到服务器；二是从某一个服务器传输到另一个 　　服务器 2.SMTP是个请求/响应协议，命令和响应都是基于ASCII文本，并以CR和LF符结束。响应包括一个表示返　 　　回状态的三位数字代码 3.SMTP在TCP协议25号端口监听连接请求 4.连接和发送过程 SMTP协议说复杂也不复杂（明明带有“简单”这个词嘛），说简单如果你懂得Sock。不过现在只是我们利用的就是第一条中说的，从客户机传输到服务器，当我们向一台服务器发送邮件时，邮件服务器会首先验证邮件发送地址是否真的存在于本服务器上。 操作的步骤如下： 连接服务器的25端口（如果没有邮件服务，连了也是白连） 发送helo问候 发送mail from命令，如果返回250表示正确可以，连接本服务器，否则则表示服务器需要发送人验证。 发送rcpt to命令，如果返回250表示则Email存在 发送quit命令，退出连接 下面我们就来操作这个流程： 首先看看页面构架： &lt;b&gt;普通的Email验证&lt;/b&gt; &lt;form runat="server"&gt; &lt;table boder="#6699FF"&gt; &lt;tr&gt;&lt;td colspan="2" align="center" &gt;&lt;asp:Label id="lblMsgShow" ForeColor="red" runat="server" /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;需要验证的Email地址:&lt;/td&gt;&lt;td&gt;&lt;asp:TextBox id="tbEmail" runat="server" /&gt;]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 09:06:00</pubDate>
		</item>
				<item>
		<title><![CDATA[看看你真正的名字吧~~（有胆进来的别后悔！！）]]></title>
		<link>http://blog.pfan.cn/tiay/29153.html</link>
		<description><![CDATA[据说娶个贱名会比较好养。 　　看看你叫什么？ 　　　　　　　　（生日中的月份) 1.长 2.栓 3.大 4.来 5.狗 6.守 7.傻 8.福 9屎 10.二 11.胖 12.臭 　　　　　　　　（生日中的具体日期） 1.娟 2.妮3.腿 4.娣 5.球 6.坑 7.年 8.岁 9.娃 10.毛 11.剩 12.姑 13.英 14.妹 15.肥 16.霞 17.狗 18.虎 19.花 20.凤 21.定 21.村 .22.蛋 23.妞 24.牛 25.木26.翠 27. 爱28.财 29.石 30.美丽 31.发 　　
&nbsp;&nbsp;&nbsp; 偶这么帅,竟然叫来蛋,晕!大家也来说说啊]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 08:40:00</pubDate>
		</item>
				<item>
		<title><![CDATA[谈谈IT人的发展(好文推荐)[转]]]></title>
		<link>http://blog.pfan.cn/tiay/29152.html</link>
		<description><![CDATA[[转自:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=96]
一个人如果能确定他喜欢的行业，他一生都会非常幸福。&nbsp;相反，则往往痛苦，也许竟然会因此成为一个哲学家也说不定。&nbsp;
&nbsp;&nbsp;&nbsp; 中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业，而只是因为生活所迫，或者世风所迫——当这个社会只崇尚有钱者有权者的时候，当周围的人不断地向我们灌输这种价值观的时候，我们除非是圣人，要不然都会为之所动的，这就是众所周知的三人成虎，或者鲁迅先生说的人言可畏。
&nbsp;&nbsp;&nbsp; 所以，中国IT行业的从业者当中，有很大一部分做着自己不喜欢的工作。做着不喜欢的工作，倘若这种工作在另外一个方面还有补偿，例如工资不错，或者地位很高。那么即使不喜欢也会变得喜欢的。但是，倘若这种工作不能出现这种补偿，则往往意味着一种巨大的失落感。
&nbsp;&nbsp;&nbsp; 所以，IT人抱怨，起得比鸡早，干活儿比驴累。世人也跟着起哄，把IT人和妓女相提并论。主要是说明两者都是吃青春饭。而现在当IT人的工资降下来之后，IT人似乎练妓女都不如了。这种情况下，IT人的失望痛苦可想而知。
&nbsp;&nbsp;&nbsp; 到底IT人应该怎么发展？
&nbsp;&nbsp;&nbsp; 第一， 做管理。这个似乎到处都在这么说。学而优则仕，这不只是中国人的习惯。这有合理性。原因很简单。因为，如果你是行业中的优秀者，那么，当年轻人走进这个行业的时候，你可以给于他很优秀的指点，可以很快让他们从你的终点前进，相当于用你的肩膀支撑起他们。而幸运的他们，就成了站在巨人肩膀上的牛顿——如果他们竟然很幸运的话。
&nbsp;&nbsp;&nbsp; 第二， 继续做技术。一个人倘若真的喜欢技术，没有年龄限制。技术可以做到老。但是技术不是重复劳动，把技术理解成单纯的编码，把编码理解成单纯的体力劳动，都是错误的。我和一个日本老头共事过，他很喜欢技术，他当时已经是富翁，然而依旧在编程。用程序实现自己的思想，这是一项非常有乐趣的事情。另外，网易的主人丁磊也可以说明问题，他早已经身价多少万了，恐怕也很老了吧，但是他现在依旧在做技术。那些以为老了不能做技术的人，需要好好研究研究什么叫技术，什么叫管理]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 08:35:00</pubDate>
		</item>
				<item>
		<title><![CDATA[全国高校处女率排行榜]]></title>
		<link>http://blog.pfan.cn/tiay/29151.html</link>
		<description><![CDATA[[转自:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=129]全国高校处女率排行榜,看看你的学校有没有入围&nbsp; &nbsp;&nbsp; &nbsp;北京中医药大学 49.47 　　暨南大学 45.73 　　中国矿业大学 44.82 　　中央民族大学 43.50 　　青岛海洋大学 42.47 　　清华大学 41.22 　　武汉大学 40.0 　　北京航空航天大学 36.73 　　新疆大学 35.24 　　东南大学 33.0 　　西北工业大学 31.0 　　同济大学 30.0 　　电子科技大学 29.35 　　中国科学技术大学 27.07 　　兰州大学 25.0 　　北京理工大学 24.79 　　哈尔滨工业大学 24.27 　　复旦大学 23.92 　　中国地质大学 23.34 　　中国农业大学 23.0 　　北京大学 22.69 　　浙江大学 22.65 　　华南理工大学 22.60 　　北京科技大学 22.56 　　北京林业大学 22.0 　　天津大学 21.84 　　北京化工大学 21.0 　　上海交通大学 20.44 　　南京大学 20.32 　　南京农业大学 18.0 　　西安交通大学 17.26 　　吉林大学 16.60 　　北京外国语大学 15.86 　　山西大学 15.0 　　北京师范大学 14.62 　　湖南大学 14.49 　　中山大学 13.65 　　华东师范大学 13.0 　　四川大学 12.92 　　厦门大学 12.06 　　国际关系学院 11.42 　　中南大学 11.17 　　山东大学 10.73 　　北方交通大学 10.46 　　南开大学 10.3 　　南京航空航天大学 9.35 　　中国人民大学 7.48 　　北京工业大学 5.66 　　第二外国语大学 3.03 　　对外经济贸易大学 1.69 　　中央音乐学院 0.55 　　北京舞蹈学院 0.15 　　北京电影学院 0.13 　　北京广播学院 0 　　北京戏曲学院 0 数字源自62117网站说明：本表是北京电影学院光棍协会（非注册学生团体）12名会员经过近一个月的社会调查（通过同学关系）和网上调查，经过统计，得出的数据，由于众所周知的原因，可能与实际数据有较大出入。因此，本排行只反应大学毕业女生处女率的大体趋向，并不保证数据和]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-09-06 08:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[创业思路分析指南]]></title>
		<link>http://blog.pfan.cn/tiay/28681.html</link>
		<description><![CDATA[&nbsp;&nbsp;&nbsp; 首先分析第一个 C：顾客们
&nbsp;&nbsp;&nbsp; 个人：
&nbsp;&nbsp;&nbsp; 顾客是谁，何在？
&nbsp;&nbsp;&nbsp; 顾客对本产品的认识如何？
&nbsp;&nbsp;&nbsp; 顾客对本品牌的忠诚如何？
&nbsp;&nbsp;&nbsp; 顾客购买本产品的数量多大？
&nbsp;&nbsp;&nbsp; 顾客跳槽的成本如何？
&nbsp;&nbsp;&nbsp; 顾客的好处如何？
&nbsp;&nbsp;&nbsp; 顾客的爱好如何？
&nbsp;&nbsp;&nbsp; 顾客的使用习惯如何？
&nbsp;&nbsp;&nbsp; 市场：
&nbsp;&nbsp;&nbsp; 市场的数量规模有多大？
&nbsp;&nbsp;&nbsp; 市场的扩张速度有多快？
&nbsp;&nbsp;&nbsp; 市场的细分层隔有多密？
&nbsp;&nbsp;&nbsp; 市场的占有份额有多少？
&nbsp;&nbsp;&nbsp; 市场的成熟程度有多高？
&nbsp;&nbsp;&nbsp; 市场的发展趋势有多好？
&nbsp;&nbsp;&nbsp; 产品：
&nbsp;&nbsp;&nbsp; 产品的价位优势有多大？
&nbsp;&nbsp;&nbsp; 产品的特色优势有多强？
&nbsp;&nbsp;&nbsp; 产品的生命周期有多长？
&nbsp;&nbsp;&nbsp; 产品的替代种类有多少？
&nbsp;&nbsp;&nbsp; 其次分析第二个 C：本企业
&nbsp;&nbsp;&nbsp; 在经济性方面：
&nbsp;&nbsp;&nbsp; 成本有多高？
&nbsp;&nbsp;&nbsp; 盈利有多大？
&nbsp;&nbsp;&nbsp; 产品开发能力有多强？
&nbsp;&nbsp;&nbsp; 产品生产能力有多强？
&nbsp;&nbsp;&nbsp; 短期经营保本点在何处？
&nbsp;&nbsp;&nbsp; 经验曲线有多高？
&nbsp;&nbsp;&nbsp; 财务数据有多好？
&nbsp;&nbsp;&nbsp; 销售渠道有多少？
&nbsp;&nbsp;&nbsp; 组织结构有多简？]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-08-20 13:16:00</pubDate>
		</item>
				<item>
		<title><![CDATA[如何白手起家]]></title>
		<link>http://blog.pfan.cn/tiay/28680.html</link>
		<description><![CDATA[身价在“１０亿美元”以上的４９７名超级富豪中，竟有２３７名是白手起家！美国作家福利森指出，要想成为亿万富豪，有如下五大秘诀：　　●懂得把伟大创意发扬光大　　富豪不一定是某个伟大创意的发现者或发明者，但却是能把伟大创意发扬光大的人。例如全球首富比尔·盖茨，虽然是靠电脑操作系统ＤＯＳ发迹，但他并不是该系统的发明者，真正的“ＤＯＳ之父”很早就在一场酒吧斗殴中丧生，享年只有５４岁。　　●脸皮要厚　　富豪的行为模式异于常人，常做出违反社会常规、招致他人忌恨的事。美国最大零售商沃尔玛的创办人山姆·奥尔顿经常扰乱市场价格。一旦逮到机会，他便伺机向供应商杀价。所以供应商们都知道和沃尔玛做生意不容易。因此，如果你想当好好先生，最好打消富豪梦。　　●抱紧资产　　要想财富长久，就要具备足够的定力，拒绝短期利益的诱惑，抱紧核心资产。微软的比尔·盖茨能够多年蝉联全球富豪榜首，就是得益于他能够抗拒诱惑，不放弃微软的大部分股权。　　●有捡便宜货的独到眼光　　对于富豪们来说，捡便宜货不是在整个社会都认为很便宜的时候买进。他们认为，一旦某项资产的现价已经低于其“潜在价值”时，就是介入的最佳时机了。　　●气定神闲地面对投资风险　　投资没有一定赚钱的道理，不过，富豪们一定有办法使自己安度投资的低潮。专家们发现，富豪们大多是玩扑克牌的高手。他们大多生活作息有规律，婚姻生活稳定、美满。有志成为富豪的人，不妨向他们的生活态度看齐。　　笔者为有志于在国内成为富翁的人士再增加几条：　　●要讲政治　　就是对国家政策要深入了解，好好学习。那些搞房地产、股票、资产运作发财的富翁，都是精于此道的。　　●要讲学习　　世界变化太快，不学习就要落伍，就容易被骗上当。总学习康熙或“红顶商人”那一套不行，毕竟那是封建时代的权术；老想把军事上的战略战术搬到商场上也不行，毕竟员工不是战士，对手不是死敌；只看韦尔奇自传也不行，因为我们的市场环境、社会风俗与人家不一样，他可以用的办法我们无法学——比如他喜欢给员工写纸条，我们就不能给女员工写，以免误会；他可以发表高论，我们需要集体决策、喜欢谦虚的人，不可过于突出个人；他可以解雇员工，我们需要先建立社会保障制度，免得员工拿菜刀追着你到处跑。　　●要讲正气　　也就是要诚信，你不希望员工对你做的事情，你也不要对别人干。　　自己有主意，不要头脑发热。特别是冲击世界５００强，或者当什么王称什么霸，往]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-08-20 13:15:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Microsoft&nbsp;VBscript运行时错误]]></title>
		<link>http://blog.pfan.cn/tiay/28679.html</link>
		<description><![CDATA[MicrosoftVBscript运行时错误(0x000A0005) 无效的过程调用或参数 MicrosoftVBscript运行时错误(0x000A0005) 无效的过程调用或参数 MicrosoftVBscript运行时错误(0x000A0006) 溢出 MicrosoftVBscript运行时错误(0x000A0007) 内存不够 MicrosoftVBscript运行时错误(0x000A0009) 下标越界 MicrosoftVBscript运行时错误(0x000A000A) 该数组为定长的或临时被锁定 MicrosoftVBscript运行时错误(0x000A000B) 被零除 MicrosoftVBscript运行时错误(0x000A000D) 类型不匹配 MicrosoftVBscript运行时错误(0x000A000E) 字符串空间不够 MicrosoftVBscript运行时错误(0x000A0011) 不能执行所需的操作 MicrosoftVBscript运行时错误(0x000A001C) 堆栈溢出 MicrosoftVBscript运行时错误(0x000A0023) 未定义过程或函数 MicrosoftVBscript运行时错误(0x000A0030) 加载 DLL 时出错 MicrosoftVBscript运行时错误(0x000A0033) 内部错误 MicrosoftVBscript运行时错误(0x000A0034) 错误的文件名或号码 MicrosoftVBscript运行时错误(0x000A0035) 文件未找到 MicrosoftVBscript运行时错误(0x000A0036) 错误的文件模式 MicrosoftVBscript运行时错误(0x000A0037) 文件已经打开 MicrosoftVBscript运行时错误(0x000A0039) 设备 I/O 错误 MicrosoftVBscript运行时错误(0x000A003A) 文件已存在 MicrosoftVBscript运行时错误(0x000A003D) 磁盘已满 MicrosoftVBscript运行时错误(0x000A003E) 输入超出了文件尾 MicrosoftVBscript运行时错误(0x000A0043) 文件过多 MicrosoftVBscript运行时错误]]></description>
		<author><![CDATA[longlong16]]></author>
		<pubDate>2007-08-20 13:07:00</pubDate>
		</item>
		</channel>
</rss>