<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://feeds.qzone.qq.com/rss.xsl" version="1.0"?>
<rss version="2.0" xmlns:qz="http://qzone.qq.com">
<channel>
<title><![CDATA[辉·超越]]></title>
<description><![CDATA[       深蓝的天空 【小辉】]]></description>
<link>http://522817368.qzone.qq.com</link>
<lastBuildDate>Fri, 27 Nov 2009 03:16:55 GMT</lastBuildDate>
<generator>Qzone</generator>
<language>zh-cn</language>
<copyright>Copyright (C), 2005-2008, Tencent Tech. Co., Ltd.</copyright>
<pubDate>Thu, 26 Nov 2009 12:30:31 GMT</pubDate>

<item>
<title><![CDATA[男人十大必看电影]]></title>
<link>http://522817368.qzone.qq.com/blog/1259238631</link>
<description><![CDATA[<span style="color:#cc0000;line-height:1.8em;"><span style="font-weight:bold"><wbr />1、《阿甘正传》课程：执着 <br><br>每次想起阿甘在美国东西海岸之间的奔跑，心里都会止不住的伤感，还有振奋。 <br><br>你相信一个智障儿的成功吗？你相信这世上得到最多的人正是那些不计得失的 <br>人吗？ <br><br>阿甘不懂得他不能总跟着一个女人帮她打架，也不懂得一个成年人不该总把 <br>妈妈的话挂在嘴边。阿甘什么都不知道，他只知道凭着直觉在路上不停地 <br>跑，并且最终跑到了终点。另外，《阿甘正传》还会教给你一个男人必须 <br>具备的一种素质——困境中的幽默感。 <br><br>2、《东方不败》课程：才华 <br><br>男人不应该不看武侠片，如果你只能看一部武侠电影，你会选择什么？我 <br>想应该是《东方不败》。“满堂花醉三千客，一剑霜寒十四州”，剑客的 <br>身姿随着剑在空气中的游走而起舞，翩若惊鸿，宛若游龙。金庸的《笑傲 <br>江湖》讲的是对自由的追求，徐克、程小东、张叔平、李连杰等一干天才 <br>用电影再现了金庸笔下这个瑰丽无比的武侠世界。沧海一声笑的曲子传唱 <br>至今，成为我们一个幻想的凭籍，一个逃避现实的出口。 <br><br>3、《美国往事》课程：人生 <br><br>《美国往事》包含了一个男人在这个世界上所能遇到的一切。友情、爱情 <br>、幻想、责任、冲突。它更像是一场让人不愿醒来的梦，当面条躺在床上 <br>，在温暖的灯光和迷离的电话铃声中回到那些逝去了的岁月，这场梦便开 <br>始了，直到最后，面条终于露出笑容，我们才回到自己的人生，去继续那 <br>些不尽的故事。什么帮派，什么仇杀，原来都不重要，印象中只有一个毛 <br>躁的少年，偷看一个美丽女孩儿跳舞；只有一个负罪的兄弟，每天早早地 <br>上床睡觉；只有一个白发苍苍的老人，面对背叛了的友谊，语调平和，不 <br>动声色。《美国往事》带着你作了一个3小时45分钟的梦。人生如梦，这也 <br>许是惟一的感受。 <br><br>4、《罗马假日》课程：爱情 <br><br>也许《罗马假日》有点瞎浪漫的嫌疑，但奥黛丽?赫本的出现使它真的成了 <br>一部童话。她就像是游历人间的天使，美丽得不染纤尘。记者吻过湿淋淋 <br>的公主，然后看着她慢慢地走向自己的官邸。那一刻，你是否会在心里默 <br>默地说“别走”？ <br><br>在罗马的宫殿里，两个人站得那样近，也离得那样远。乔只能说：“你的 <br>朋友绝不会让你失望。”而公主也只能这样回答：“罗马，当然是罗马。 <br>”在人的一生里，即便只有这样一刻心灵的相通，也会少却多少遗憾！ <br><br>5、《勇敢的心》课程：勇气 <br><br>也许英雄并不是无所不能的神明，但英雄一定是无所畏惧的勇士。在你站在 <br>霓虹闪烁的街头，当你面对卑鄙委琐的笑脸，你又想起了那个让你汗颜的华 <br>莱士，这时你收起脸上惯带的笑容，默默地向梅尔?吉布森致敬，从来没有 <br>这么庄重。因为他让我们明白，什么才是真正的英雄。“freedom！”华莱 <br>士临死前的一声呐喊，把你的血也点燃了。 <br><br>6、《辛德勒的名单》课程：责任 <br><br>所谓责任，就是未必做得成却必须去做的事。对于辛德勒来说，救助落难的 <br>犹太人是作为一个真正的人的责任。而把那段历史搬上银幕，则是斯皮尔 <br>伯格作为一个犹太艺术家的责任。《辛德勒的名单》包含着对受难者的祭 <br>奠，对拯救者的敬意，和对光明一定到来的信念。在影片放映后的一片赞 <br>誉声中，斯皮尔伯格平静地把影片的全部收益捐给了美国的纳粹大屠杀纪 <br>念馆。 <br><br>7、《肖申克的救赎》课程：信念 <br><br>“有一种鸟儿是永远也关不住的，因为它的每片羽翼上都沾满了自由的光辉 <br>。” <br><br>一个人能够在15年痛苦的牢狱生活里，不放弃对自由的向往，这是一种怎 <br>样的精神力量？所以他成功了，成功夺回了自由。《肖申克的救赎》中有 <br>这样一句话：体制化是这样一种东西，一开始你排斥它，后来你习惯它， <br>直到最后你离不开它。想想看，我们的身体已经有多大一部分被体制化了？ <br><br>8、《e．t》课程：童心 <br><br>如果看《e．t》（外星人）时你流泪了，你不要害怕也不要惭愧，不管你 <br>有多大的年纪。实际上，能够和孩子们一起为e．t的遭遇而悲喜，是一件 <br>多么让人庆幸的事，这代表着我们还有一点童心未曾泯灭，代表着我们有 <br>一些梦想还藏在心底。当长着一双孩子的眼睛的e．t用超能力让孩子们的 <br>自行车飞上夜空，穿过那轮明月的时候，你是否感到了震憾？是否对自己 <br>一些已经习惯了的东西产生了怀疑？ <br><br>9、《现代启示录》课程：痛苦 <br><br>战争是一种秩序的破坏，世界上最可悲最痛苦的事莫过于战争，最痛苦的战 <br>争电影莫过于《现代启示录》。《现代启示录》讲的是人性的倒退，秩序的 <br>破坏。但文明的进程却没有人能够阻挡。 <br><br>10、《第七封印》课程：哲思 <br><br>瑞典大师伯格曼代表作，在这部1957年完成的黑白影片中，伯格曼明确地提 <br>出了“上帝是否存在”的疑问。我不敢说我看懂了《第七封印》，但如果要 <br>我在临死之前看一部电影，我一定选择《第七封印》。 </span><wbr /></span><wbr /><br><span style="color:#cc0000;line-height:1.8em;"><span style="font-weight:bold"><wbr /><br></span><wbr /></span><wbr /><span style="color:#0033ff;line-height:1.8em;">  <span style="font-weight:bold"><wbr />                         以上的十部中 你看过几部啊？</span><wbr /></span><wbr /><span style="color:#ccff00;line-height:1.8em;"><span style="font-weight:bold"><wbr /> </span><wbr /><br></span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1259238631#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Thu, 26 Nov 2009 12:30:31 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1259238631</guid>
</item>

<item>
<title><![CDATA[『精』 何必去在乎？、、、（欠顶）]]></title>
<link>http://522817368.qzone.qq.com/blog/1255925735</link>
<description><![CDATA[<br>『精』 何必去在乎？、、、（欠顶） BY:辉  <br> <br><span style="font-weight:bold"><wbr /> </span><wbr /><br><span style="font-weight:bold"><wbr />     </span><wbr /><br><span style="font-weight:bold"><wbr />    </span><wbr /><br><span style="font-weight:bold"><wbr />总以为失去了自己，迷失了方向；<br>    总以为一切到此为止，生活不过如此。<br>    其实是自己想的太多，太复杂。<br>    日子一天天地过，有昨天的，今天的，还有明天的。但这一切总会过去，所有的都会成为记忆。有一天，记忆消失了，“一切”也就真的不在了。<br>    为什么要计较曾经的天空和白去？<br>    为什么要计较曾的悲伤和失败？<br>    为什么不去憧憬明天的太阳和月亮？<br>    为什么不去描绘未来的生活和理想？</span><wbr /><br><span style="font-weight:bold"><wbr />    路是自己走的。<br>    为什么总是去回忆曾经路上的坎坷和荆棘？<br>    也许此时的路很平坦，也许很艰难，可走过之后，不又成为记忆了吗？<br>    其实，当我们空手来到这个世上的时候，已经注定了我们也将空手离开这里。既然我们什么也带不来，又什么也带不走，又何必在人生的路上计较得与失，成功与失败呢？</span><wbr /><br><span style="font-weight:bold"><wbr />    继续赶路吧，其实，谁也说不清一个人来到这世上到底是为了什么。为了吃？为了钱？为了爱情？为了国家？<br>    放开我们的思想吧？去做我们想做的事，只要这个社会还允许的话！<br>    还抱怨什么呢？也许生活就是这个样子，没有我们想象的那么美好，也没有我们想象的那么糟糕！管它呢？给自己一点信心，给生活一点激情，努力的去追求，执着一点又怕什么，又要付出了，又何必在乎那结果呢？</span><wbr /><span style="color:#FF3333;line-height:1.8em;"><br></span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1255925735#comment</comments>
<qz:effect>134218258</qz:effect>
<pubDate>Mon, 19 Oct 2009 04:15:35 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1255925735</guid>
</item>

<item>
<title><![CDATA[打造个人版QQ  写上你的名字 用Q必看  超炫！]]></title>
<link>http://522817368.qzone.qq.com/blog/1253882582</link>
<description><![CDATA[图片：<br>                             <wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=163db142913c59b03268d4d04fc0dee8bb4358407a5a6fafea15046d843055459e4709e22f98ae463c1b59bc083016668856fc5c8b1d6eb6b0adee5f53cc2d82fc77bea9e6f92350fd62a829f0c470261e2d74f2" target="_blank"><img style="width:347px;height:129px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=163db142913c59b03268d4d04fc0dee8bb4358407a5a6fafea15046d843055459e4709e22f98ae463c1b59bc083016668856fc5c8b1d6eb6b0adee5f53cc2d82fc77bea9e6f92350fd62a829f0c470261e2d74f2" /></a><wbr /><br>方法：首先下载并安装（其实不需要安装）关掉QQ，打开 “ResHacker.exe   ”<br><br>单击“文件----打开”，在弹出的打开的文件窗口中定位到QQ安装目录，（根据你所安装文件的盘符） <br>选定其中的 LoginCtrlRes.dll   <br>看到了吗，就是这个 ，单击“打开”。 <br>在软件窗口左侧依次展开“字串表-----104”，选定其下的“2052”， <br>在窗口右侧就可以看见“QQ用户登录”的文字, <br>现在我们就把它修改为“QQ2008某某专用版”（中间字符可换成你想要编辑的文字）。 <br><br>上面这个编译脚本，大家看到了吗? <br>单击“编译脚本”按钮进行编译，然后依次单击“文件----保存” <br>保存文件后退出。接下来打开QQ，看看，是不是变了？ <br>ResHacker.exe   下载 地址 ↓<br> <a href="http://down.qiannao.com/space/show/qiannao/share/2009/7/24/ResHacker.rar/.page" target="_blank"><span style="color:#0070af;line-height:1.8em;">http://down.qiannao.com/space/show/qiannao/share/2009/7/24/ResHacker.rar/.page</span><wbr /></a><wbr /><br><br>有个自己的名字  用Q就是爽！！！！     喜欢的话 ，请支持下 ，呵呵 ~~~！！ <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1253882582#comment</comments>
<qz:effect>134218241</qz:effect>
<pubDate>Fri, 25 Sep 2009 12:43:02 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1253882582</guid>
</item>

<item>
<title><![CDATA[笑对人生 ，何谈容易~！！（欠顶）]]></title>
<link>http://522817368.qzone.qq.com/blog/1247368742</link>
<description><![CDATA[<br>笑对人生 ，何谈容易~！！（欠顶） BY：辉 <span style="font-weight:bold"><wbr /><span style="font-size:24px;line-height:1.8em;">     <span style="color:#00FF00;line-height:1.8em;">        面对这个庞大的世界，我们总是很渺小，我们都要经历无奈跟遗憾，都要经历痛苦跟悲伤，都要经历寒冷跟恐惧。我们是多么的渺小，在这浩瀚无边际的宇宙我们甚至比一粒微尘还小。 </span><wbr /></span><wbr /></span><wbr /><br><span style="color:#00FF00;line-height:1.8em;"><span style="font-weight:bold"><wbr />    <span style="font-size:24px;line-height:1.8em;"> 可是悲观又有什么用呢？我们要活着，要活下去。</span><wbr /> </span><wbr /></span><wbr /><br><span style="font-weight:bold"><wbr /><span style="font-size:24px;line-height:1.8em;">  <span style="color:#00FF00;line-height:1.8em;">        既然要活着，我们整天愁眉苦脸又有什么用呢？这个世界是相对的。没有苦你就不明白甜是什么滋味，没有痛苦，你也不明白幸福是什么滋味。我们面对很多，是很无奈，可是你总是回忆这些无奈，只能给你平添痛苦。这样的话，我们为什么不把无奈变成找寻幸福的动力呢？ </span><wbr /></span><wbr /></span><wbr /><br><span style="color:#00FF00;line-height:1.8em;"><span style="font-weight:bold"><wbr /><span style="font-size:24px;line-height:1.8em;">人的一生 都在寻找幸福跟快乐。这就是我们活着得意义。</span><wbr /></span><wbr /> </span><wbr /><br>                                                                                    <span style="font-weight:bold"><wbr /><span style="font-size:24px;line-height:1.8em;">    <span style="color:#FF0000;line-height:1.8em;">BY：辉</span><wbr /></span><wbr /></span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1247368742#comment</comments>
<qz:effect>134218258</qz:effect>
<pubDate>Sun, 12 Jul 2009 03:19:02 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1247368742</guid>
</item>

<item>
<title><![CDATA[php Socket 基础]]></title>
<link>http://522817368.qzone.qq.com/blog/1245167131</link>
<description><![CDATA[◆　Socket 基础 <br>PHP使用Berkley的socket库来创建它的连接。socket只不过是一个数据结构。你使用这个socket数据结构去开始一个客户端和服务器之间的会话。这个服务器是一直在监听准备产生一个新的会话。当一个客户端连接服务器，它就打开服务器正在进行监听的一个端口进行会话。这时，服务器端接受客户端的连接请求，那么就进行一次循环。现在这个客户端就能够发送信息到服务器，服务器也能发送信息给客户端。 <br>产生一个Socket，你需要三个变量：一个协议、一个socket类型和一个公共协议类型。产生一个socket有三种协议供选择，继续看下面的内容来获取详细的协议内容。 <br>定义一个公共的协议类型是进行连接一个必不可少的元素。下面的表我们看看有那些公共的协议类型。 <br>表一：协议 <br>名字/常量 描述 <br>AF_INET 这是大多数用来产生socket的协议，使用TCP或UDP来传输，用在IPv4的地址 <br>AF_INET6 与上面类似，不过是来用在IPv6的地址 <br>AF_UNIX 本地协议，使用在Unix和Linux系统上，它很少使用，一般都是当客户端和服务器在同一台机器上的时候使用 <br>表二：Socket类型 <br>名字/常量 描述 <br>SOCK_STREAM 这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型，这个socket是使用TCP来进行传输。 <br>SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的，使用UDP来进行它的连接。 <br>SOCK_SEQPACKET 这个协议是双线路的、可靠的连接，发送固定长度的数据包进行传输。必须把这个包完整的接受才能进行读取。 <br>SOCK_RAW 这个socket类型提供单一的网络访问，这个socket类型使用ICMP公共协议。（ping、traceroute使用该协议） <br>SOCK_RDM 这个类型是很少使用的，在大部分的操作系统上没有实现，它是提供给数据链路层使用，不保证数据包顺序 <br>表三：公共协议 <br>名字/常量 描述 <br>ICMP 互联网控制消息协议，主要使用在网关和主机上，用来检查网络状况和报告错误信息 <br>UDP 用户数据报文协议，它是一个无连接，不可靠的传输协议 <br>TCP 传输控制协议，这是一个使用最多的可靠的公共协议，它能保证数据包能够到达接受者那儿，如果在传输过程中发生错误，那么它将重新发送出错数据包。 <br>现在你知道了产生一个socket的三个元素，那么我们就在php中使用socket_create()函数来产生一个socket。这个socket_create()函数需要三个参数：一个协议、一个socket类型、一个公共协议。socket_create()函数运行成功返回一个包含socket的资源类型，如果没有成功则返回false。 <br>Resourece socket_create(int protocol, int socketType, int commonProtocol); <br>现在你产生一个socket，然后呢？php提供了几个操纵socket的函数。你能够绑定socket到一个IP，监听一个socket的通信，接受一个socket；现在我们来看一个例子，了解函数是如何产生、接受和监听一个socket。 <br>&lt;?php <br>$commonProtocol = getprotobyname(“tcp”);//使用公共协议名字来获取一个协议类型 <br>$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);//产生一个socket并且返回一个socket资源的实例 <br>socket_bind($socket, ‘localhost’, 1337);//绑定socket到本地计算机 <br>socket_listen($socket);//监听所有进来的socket连接 <br>// More socket functionality to come <br>?&gt; <br>上面这个例子产生一个你自己的服务器端。例子第一行， <br>$commonProtocol = getprotobyname(“tcp”); <br>使用公共协议名字来获取一个协议类型。在这里使用的是TCP公共协议，如果你想使用UDP或者ICMP协议，那么你应该把getprotobyname()函数的参数改为“udp”或“icmp”。还有一个可选的办法是不使用getprotobyname()函数而是指定SOL_TCP或SOL_UDP在socket_create()函数中。 <br>$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); <br>例子的第二行是产生一个socket并且返回一个socket资源的实例。在你有了一个socket资源的实例以后，你就必须把socket绑定到一个IP地址和某一个端口上。 <br>socket_bind($socket, ‘localhost’, 1337); <br>在这里你绑定socket到本地计算机（127.0.0.1）和绑定socket到你的1337端口。然后你就需要监听所有进来的socket连接。 <br>socket_listen($socket); <br>在第四行以后，你就需要了解所有的socket函数和他们的使用。 <br>表四：Socket函数 <br>函数名 描述 <br>socket_accept() 接受一个Socket连接 <br>socket_bind() 把socket绑定在一个IP地址和端口上 <br>socket_clear_error() 清除socket的错误或者最后的错误代码 <br>socket_close() 关闭一个socket资源 <br>socket_connect() 开始一个socket连接 <br>socket_create_listen() 在指定端口打开一个socket监听 <br>socket_create_pair() 产生一对没有区别的socket到一个数组里 <br>socket_create() 产生一个socket，相当于产生一个socket的数据结构 <br>socket_get_option() 获取socket选项 <br>socket_getpeername() 获取远程类似主机的ip地址 <br>socket_getsockname() 获取本地socket的ip地址 <br>socket_iovec_add() 添加一个新的向量到一个分散/聚合的数组 <br>socket_iovec_alloc() 这个函数创建一个能够发送接收读写的iovec数据结构 <br>socket_iovec_delete() 删除一个已经分配的iovec <br>socket_iovec_fetch() 返回指定的iovec资源的数据 <br>socket_iovec_free() 释放一个iovec资源 <br>socket_iovec_set() 设置iovec的数据新值 <br>socket_last_error() 获取当前socket的最后错误代码 <br>socket_listen() 监听由指定socket的所有连接 <br>socket_read() 读取指定长度的数据 <br>socket_readv() 读取从分散/聚合数组过来的数据 <br>socket_recv() 从socket里结束数据到缓存 <br>socket_recvfrom() 接受数据从指定的socket，如果没有指定则默认当前socket <br>socket_recvmsg() 从iovec里接受消息 <br>socket_select() 多路选择 <br>socket_send() 这个函数发送数据到已连接的socket <br>socket_sendmsg() 发送消息到socket <br>socket_sendto() 发送消息到指定地址的socket <br>socket_set_block() 在socket里设置为块模式 <br>socket_set_nonblock() socket里设置为非块模式 <br>socket_set_option() 设置socket选项 <br>socket_shutdown() 这个函数允许你关闭读、写、或者指定的socket <br>socket_strerror() 返回指定错误号的详细错误 <br>socket_write() 写数据到socket缓存 <br>socket_writev() 写数据到分散/聚合数组 <br>以上所有的函数都是PHP中关于socket的，使用这些函数，你必须把你的socket打开，如果你没有打开，请编辑你的php.ini文件，去掉下面这行前面的注释： <br>extension=php_sockets.dll <br>如果你无法去掉注释，那么请使用下面的代码来加载扩展库： <br>&lt;?php <br>if(!extension_loaded(‘sockets’)) { <br>if(strtoupper(substr(PHP_OS, 3)) == “WIN”) { <br>dl(‘php_sockets.dll’); <br>}else{ <br>dl(‘sockets.so’); <br>} <br>} <br>?&gt; <br>如果你不知道你的socket是否打开，那么你可以使用phpinfo()函数来确定socket是否打开。你通过查看phpinfo信息了解socket是否打开。 <br>查看phpinfo()关于socket的信息 <br>◆　产生一个服务器 <br>现在我们把第一个例子进行完善。你需要监听一个指定的socket并且处理用户的连接。 <br>&lt;?php <br>$commonProtocol = getprotobyname(&quot;tcp&quot;); <br>$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol); <br>socket_bind($socket, 'localhost', 1337); <br>socket_listen($socket); <br>// Accept any incoming connections to the server <br>$connection = socket_accept($socket); <br>if($connection){ <br>socket_write($connection, &quot;You have connected to the socket...\n\r&quot;); <br>} <br>?&gt; <br>你应该使用你的命令提示符来运行这个例子。理由是因为这里将产生一个服务器，而不是一个Web页面。如果你尝试使用Web浏览器来运行这个脚本，那么很有可能它会超过30秒的限时。你可以使用下面的代码来设置一个无限的运行时间，但是还是建议使用命令提示符来运行。 <br>set_time_limit(0); <br>在你的命令提示符中对这个脚本进行简单测试： <br>Php.exe example01_server.php <br>如果你没有在系统的环境变量中设置php解释器的路径，那么你将需要给php.exe指定详细的路径。当你运行这个服务器端的时候，你能够通过远程登陆（telnet）的方式连接到端口1337来测试这个服务器。 <br>上面的服务器端有三个问题：1. 它不能接受多个连接。2. 它只完成唯一的一个命令。3. 你不能通过Web浏览器连接这个服务器。 <br>这个第一个问题比较容易解决，你可以使用一个应用程序去每次都连接到服务器。但是后面的问题是你需要使用一个Web页面去连接这个服务器，这个比较困难。你可以让你的服务器接受连接，然后些数据到客户端（如果它一定要写的话），关闭连接并且等待下一个连接。 <br>在上一个代码的基础上再改进，产生下面的代码来做你的新服务器端： <br>&lt;?php <br>// Set up our socket <br>$commonProtocol = getprotobyname(&quot;tcp&quot;); <br>$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol); <br>socket_bind($socket, 'localhost', 1337); //socket_bind() 把socket绑定在一个IP地址和端口上 <br>socket_listen($socket); <br>// Initialize the buffer <br>$buffer = &quot;NO DATA&quot;; <br>while(true) { <br>// Accept any connections coming in on this socket <br>$connection = socket_accept($socket);//socket_accept() 接受一个Socket连接 <br>printf(&quot;Socket connected\r\n&quot;); <br>// Check to see if there is anything in the buffer <br>if($buffer != &quot;&quot;){ <br>printf(&quot;Something is in the buffer...sending data...\r\n&quot;); <br>socket_write($connection, $buffer . &quot;\r\n&quot;); //socket_write() 写数据到socket缓存 <br>printf(&quot;Wrote to socket\r\n&quot;); <br>}else { <br>printf(&quot;No Data in the buffer\r\n&quot;); <br>} <br>// Get the input <br>while($data = socket_read($connection, 1024, PHP_NORMAL_READ))//socket_read() 读取指定长度的数据 <br>{ <br>$buffer = $data; <br>socket_write($connection, &quot;Information Received\r\n&quot;); <br>printf(&quot;Buffer: &quot; . $buffer . &quot;\r\n&quot;); <br>} <br>socket_close($connection); //socket_close() 关闭一个socket资源 <br>printf(&quot;Closed the socket\r\n\r\n&quot;); <br>} <br>?&gt; <br>这个服务器端要做什么呢？它初始化一个socket并且打开一个缓存收发数据。它等待连接，一旦产生一个连接，它将打印“Socket connected”在服务器端的屏幕上。这个服务器检查缓冲区，如果缓冲区里有数据，它将把数据发送到连接过来的计算机。然后它发送这个数据的接受信息，一旦它接受了信息，就把信息保存到数据里，并且让连接的计算机知道这些信息，最后关闭连接。当连接关闭后，服务器又开始处理下一次连接。 <br>◆　产生一个客户端 <br>处理第二个问题是很容易的。你需要产生一个php页连接一个socket，发送一些数据进它的缓存并处理它。然后你有个处理后的数据在还顿，你能够发送你的数据到服务器。在另外一台客户端连接，它将处理那些数据。 <br>下面的例子示范了使用socket： <br>&lt;?php <br>// Create the socket and connect <br>$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); <br>$connection = socket_connect($socket,’localhost’, 1337); <br>while($buffer = socket_read($socket, 1024, PHP_NORMAL_READ)) { <br>if($buffer == “NO DATA”) { <br>echo(“&lt;p&gt;NO DATA&lt;/p&gt;”); <br>break; <br>}else{ <br>// Do something with the data in the buffer <br>echo(“&lt;p&gt;Buffer Data: “ . $buffer . “&lt;/p&gt;”); <br>} <br>} <br>echo(“&lt;p&gt;Writing to Socket&lt;/p&gt;”); <br>// Write some test data to our socket <br>if(!socket_write($socket, “SOME DATA\r\n”)){ <br>echo(“&lt;p&gt;Write failed&lt;/p&gt;”); <br>} <br>// Read any response from the socket <br>while($buffer = socket_read($socket, 1024, PHP_NORMAL_READ)){ <br>echo(“&lt;p&gt;Data sent was: SOME DATA&lt;br&gt; Response was:” . $buffer . “&lt;/p&gt;”); <br>} <br>echo(“&lt;p&gt;Done Reading from Socket&lt;/p&gt;”); <br>?&gt; <br>这个例子的代码演示了客户端连接到服务器。客户端读取数据。如果这是第一时间到达这个循环的首次连接，这个服务器将发送“NO DATA”返回给客户端。如果情况发生了，这个客户端在连接之上。客户端发送它的数据到服务器，数据发送给服务器，客户端等待响应。一旦接受到响应，那么它将把响应写到屏幕上。 <br><br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245167131#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:45:31 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245167131</guid>
</item>

<item>
<title><![CDATA[PHP经验集锦]]></title>
<link>http://522817368.qzone.qq.com/blog/1245167089</link>
<description><![CDATA[1、关于PHP重定向 <br>方法一：header(&quot;Location: index.php&quot;); <br>方法二：echo &quot;&lt;script&gt;window.location =\&quot;$PHP_SELF\&quot;;&lt;/script&gt;&quot;; <br>方法三：echo &quot;&lt;META HTTP-EQUIV=\&quot;Refresh\&quot; CONTENT=\&quot;0; URL=index.php\&quot;&gt;&quot;; <br>2、获取访问者浏览器 <br><br>function browse_infor() { <br>$browser=&quot;&quot;;$browserver=&quot;&quot;; <br>$Browsers =array(&quot;Lynx&quot;,&quot;MOSAIC&quot;,&quot;AOL&quot;,&quot;Opera&quot;,&quot;JAVA&quot;,&quot;MacWeb&quot;,&quot;WebExplorer&quot;,&quot;OmniWeb&quot;); <br>$Agent = $GLOBALS[&quot;HTTP_USER_AGENT&quot;]; <br>for ($i=0; $i&lt;=7; $i++) { <br>if (strpos($Agent,$Browsers[$i])) { <br>$browser = $Browsers[$i]; <br>$browserver =&quot;&quot;; <br>} <br>} <br>if (ereg(&quot;Mozilla&quot;,$Agent) &amp;&amp; !ereg(&quot;MSIE&quot;,$Agent)) { <br>$temp =explode(&quot;(&quot;, $Agent); $Part=$temp[0]; <br>$temp =explode(&quot;/&quot;, $Part); $browserver=$temp[1]; <br>$temp =explode(&quot; &quot;,$browserver); $browserver=$temp[0]; <br>$browserver =preg_replace(&quot;/([\d\.]+)/&quot;,&quot;\\1&quot;,$browserver); <br>$browserver = &quot; $browserver&quot;; <br>$browser = &quot;Netscape Navigator&quot;; <br>} <br>if (ereg(&quot;Mozilla&quot;,$Agent) &amp;&amp; ereg(&quot;Opera&quot;,$Agent)) { <br>$temp =explode(&quot;(&quot;, $Agent); $Part=$temp[1]; <br>$temp =explode(&quot;)&quot;, $Part); $browserver=$temp[1]; <br>$temp =explode(&quot; &quot;,$browserver);$browserver=$temp[2]; <br>$browserver =preg_replace(&quot;/([\d\.]+)/&quot;,&quot;\\1&quot;,$browserver); <br>$browserver = &quot; $browserver&quot;; <br>$browser = &quot;Opera&quot;; <br>} <br>if (ereg(&quot;Mozilla&quot;,$Agent) &amp;&amp; ereg(&quot;MSIE&quot;,$Agent)) { <br>$temp = explode(&quot;(&quot;, $Agent); $Part=$temp[1]; <br>$temp = explode(&quot;;&quot;,$Part); $Part=$temp[1]; <br>$temp = explode(&quot; &quot;,$Part);$browserver=$temp[2]; <br>$browserver =preg_replace(&quot;/([\d\.]+)/&quot;,&quot;\\1&quot;,$browserver); <br>$browserver = &quot; $browserver&quot;; <br>$browser = &quot;Internet Explorer&quot;; <br>} <br>if ($browser!=&quot;&quot;) { <br>$browseinfo = &quot;$browser$browserver&quot;; <br>}else { <br>$browseinfo = &quot;Unknown&quot;; <br>} <br>return $browseinfo; <br>} <br>//调用方法$browser=browseinfo() ;直接返回结果 <br>3、获取访问者操作系统 <br><br>function osinfo() { <br>$os=&quot;&quot;; <br>$Agent = $GLOBALS[&quot;HTTP_USER_AGENT&quot;]; <br>if (eregi('win',$Agent) &amp;&amp; strpos($Agent, '95')) { <br>$os=&quot;Windows 95&quot;; <br>} <br>elseif (eregi('win 9x',$Agent) &amp;&amp; strpos($Agent, '4.90')) { <br>$os=&quot;Windows ME&quot;; <br>} <br>elseif (eregi('win',$Agent) &amp;&amp; ereg('98',$Agent)) { <br>$os=&quot;Windows 98&quot;; <br>} <br>elseif (eregi('win',$Agent) &amp;&amp; eregi('nt 5\.0',$Agent)) { <br>$os=&quot;Windows 2000&quot;; <br>} <br>elseif (eregi('win',$Agent) &amp;&amp; eregi('nt',$Agent)) { <br>$os=&quot;Windows NT&quot;; <br>} <br>elseif (eregi('win',$Agent) &amp;&amp; eregi('nt 5\.1',$Agent)) { <br>$os=&quot;Windows XP&quot;; <br>} <br>elseif (eregi('win',$Agent) &amp;&amp; ereg('32',$Agent)) { <br>$os=&quot;Windows 32&quot;; <br>} <br>elseif (eregi('linux',$Agent)) { <br>$os=&quot;Linux&quot;; <br>} <br>elseif (eregi('unix',$Agent)) { <br>$os=&quot;Unix&quot;; <br>} <br>elseif (eregi('sun',$Agent) &amp;&amp; eregi('os',$Agent)) { <br>$os=&quot;SunOS&quot;; <br>} <br>elseif (eregi('ibm',$Agent) &amp;&amp; eregi('os',$Agent)) { <br>$os=&quot;IBM OS/2&quot;; <br>} <br>elseif (eregi('Mac',$Agent) &amp;&amp; eregi('PC',$Agent)) { <br>$os=&quot;Macintosh&quot;; <br>} <br>elseif (eregi('PowerPC',$Agent)) { <br>$os=&quot;PowerPC&quot;; <br>} <br>elseif (eregi('AIX',$Agent)) { <br>$os=&quot;AIX&quot;; <br>} <br>elseif (eregi('HPUX',$Agent)) { <br>$os=&quot;HPUX&quot;; <br>} <br>elseif (eregi('NetBSD',$Agent)) { <br>$os=&quot;NetBSD&quot;; <br>} <br>elseif (eregi('BSD',$Agent)) { <br>$os=&quot;BSD&quot;; <br>} <br>elseif (ereg('OSF1',$Agent)) { <br>$os=&quot;OSF1&quot;; <br>} <br>elseif (ereg('IRIX',$Agent)) { <br>$os=&quot;IRIX&quot;; <br>} <br>elseif (eregi('FreeBSD',$Agent)) { <br>$os=&quot;FreeBSD&quot;; <br>} <br>if ($os=='') $os = &quot;Unknown&quot;; <br>return $os; <br>} <br>//调用方法$os=os_infor() ; <br>4、文件格式类 <br>$mime_types = array( <br>'gif' =&gt; 'image/gif', <br>'jpg' =&gt; 'image/jpeg', <br>'jpeg' =&gt; 'image/jpeg', <br>'jpe' =&gt; 'image/jpeg', <br>'bmp' =&gt; 'image/bmp', <br>'png' =&gt; 'image/png', <br>'tif' =&gt; 'image/tiff', <br>'tiff' =&gt; 'image/tiff', <br>'pict' =&gt; 'image/x-pict', <br>'pic' =&gt; 'image/x-pict', <br>'pct' =&gt; 'image/x-pict', <br>'tif' =&gt; 'image/tiff', <br>'tiff' =&gt; 'image/tiff', <br>'psd' =&gt; 'image/x-photoshop', <br>'swf' =&gt; 'application/x-shockwave-flash', <br>'js' =&gt; 'application/x-javascript', <br>'pdf' =&gt; 'application/pdf', <br>'ps' =&gt; 'application/postscript', <br>'eps' =&gt; 'application/postscript', <br>'ai' =&gt; 'application/postscript', <br>'wmf' =&gt; 'application/x-msmetafile', <br>'css' =&gt; 'text/css', <br>'htm' =&gt; 'text/html', <br>'html' =&gt; 'text/html', <br>'txt' =&gt; 'text/plain', <br>'xml' =&gt; 'text/xml', <br>'wml' =&gt; 'text/wml', <br>'wbmp' =&gt; 'image/vnd.wap.wbmp', <br>'mid' =&gt; 'audio/midi', <br>'wav' =&gt; 'audio/wav', <br>'mp3' =&gt; 'audio/mpeg', <br>'mp2' =&gt; 'audio/mpeg', <br>'avi' =&gt; 'video/x-msvideo', <br>'mpeg' =&gt; 'video/mpeg', <br>'mpg' =&gt; 'video/mpeg', <br>'qt' =&gt; 'video/quicktime', <br>'mov' =&gt; 'video/quicktime', <br>'lha' =&gt; 'application/x-lha', <br>'lzh' =&gt; 'application/x-lha', <br>'z' =&gt; 'application/x-compress', <br>'gtar' =&gt; 'application/x-gtar', <br>'gz' =&gt; 'application/x-gzip', <br>'gzip' =&gt; 'application/x-gzip', <br>'tgz' =&gt; 'application/x-gzip', <br>'tar' =&gt; 'application/x-tar', <br>'bz2' =&gt; 'application/bzip2', <br>'zip' =&gt; 'application/zip', <br>'arj' =&gt; 'application/x-arj', <br>'rar' =&gt; 'application/x-rar-compressed', <br>'hqx' =&gt; 'application/mac-binhex40', <br>'sit' =&gt; 'application/x-stuffit', <br>'bin' =&gt; 'application/x-macbinary', <br>'uu' =&gt; 'text/x-uuencode', <br>'uue' =&gt; 'text/x-uuencode', <br>'latex'=&gt; 'application/x-latex', <br>'ltx' =&gt; 'application/x-latex', <br>'tcl' =&gt; 'application/x-tcl', <br>'pgp' =&gt; 'application/pgp', <br>'asc' =&gt; 'application/pgp', <br>'exe' =&gt; 'application/x-msdownload', <br>'doc' =&gt; 'application/msword', <br>'rtf' =&gt; 'application/rtf', <br>'xls' =&gt; 'application/vnd.ms-excel', <br>'ppt' =&gt; 'application/vnd.ms-powerpoint', <br>'mdb' =&gt; 'application/x-msaccess', <br>'wri' =&gt; 'application/x-mswrite', <br>); <br>5、php生成excel文档 <br>&lt;? <br>header(&quot;Content-type:application/vnd.ms-excel&quot;); <br>header(&quot;Content-Disposition:filename=test.xls&quot;); <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>echo &quot;test1\t&quot;; <br>echo &quot;test2\t\n&quot;; <br>?&gt; <br>//改动相应文件头就可以输出.doc .xls等文件格式了 <br>6、时间比较问题 <br>举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下。 <br>方法一： <br>//$db-&gt;rows[$i][date]中为数据库中datetime字段值. <br>$today=time(); <br>$theDay=date(&quot;Y-m-d H:i:s&quot;,$today-24*3600); <br>$newTag=$db-&gt;rows[$i][date]&gt;=$theDay?&quot;&lt;img src='/article/UploadPic/2008-12/20081222152318629.gif'&gt;&quot;:&quot;&quot;; <br>方法二： <br>$newTag=$db-&gt;rows[$i][date]&gt;=date(&quot;Y-m-d 00:00:00&quot;)?&quot;&lt;img src='/article/UploadPic/2008-12/20081222152318629.gif'&gt;&quot;:&quot;&quot;; <br>7.数据库封装例子 <br>&lt;?php <br>//------------------------------------------------------------------------------------------ <br>// ※Database() 构造函数，数据库初始参数 <br>// ※Select() 查询 <br>// ※GetRows() 返回查询的记录总数 <br>// ※Insert() 插入记录 <br>// ※Update() 更新 <br>// ※Delete() 删除 <br>// ※Halt() 中断并显示错误信息*/ <br>//------------------------------------------------------------------------------------------ <br>define(&quot;DATABASETYPE&quot;,&quot;1&quot;); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc <br>define(&quot;SERVER&quot;,&quot;localhost&quot;); //Host name or IP address of the database server <br>define(&quot;DATABASE&quot;,&quot;dbName&quot;); //要连接的数据库名 <br>define(&quot;USER&quot;,&quot;tableName&quot;); //用于连接数据库的用户名 <br>define(&quot;PASSWORD&quot;,&quot;paswd&quot;); //用于连接数据库的密码 <br>class Database{ <br>var $dbLink; //连接句柄 <br>var $result; //查询句柄 <br>var $insId; //Insert()成功返回AUTO_INCREMENT列的值 <br>var $rows; //返回数据数组 <br>var $numRows; //返回数据数目 <br>var $dbHost, $dbUser, $userPassword, $database; <br>var $dbType=DATABASETYPE; <br>var $msgFlag = &quot;yes&quot; ; //yes:show the Mysql message ; no: die by show &quot;Halted.&quot; <br>function Database($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){ <br>switch($this-&gt;dbType){ <br>case 1: <br>$this-&gt;dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// or die(&quot;Can't Connect to Remote Host!&quot;); <br>@mysql_select_db($database,$this-&gt;dbLink);// or die (&quot;Can't Connect to Remote Host!&quot;); <br>break; <br>case 2: <br>break; <br>} <br>return true; <br>} <br>/*SQL:Select() 返回为false无结果*/ <br>function Select($table,$columns,$condition=1){ <br>$sql=&quot;select $columns from $table where $condition &quot;; <br>//echo $sql.&quot;&lt;br&gt;&quot;; <br>$this-&gt;result=@mysql_query($sql,$this-&gt;dbLink); <br>unset($this-&gt;rows); <br>if($this-&gt;result){ <br>$i=0; <br>if(!($this-&gt;rows=array(&quot;$i&quot;=&gt;@mysql_fetch_array($this-&gt;result)))) <br>return false; <br>if(($this-&gt;numRows=@mysql_num_rows($this-&gt;result))==0) <br>return false; <br>while($tempRows=@mysql_fetch_array($this-&gt;result)){ <br>array_push($this-&gt;rows,$tempRows); <br>} <br>}else{ <br>$this-&gt;Halt($sql); <br>return false; <br>} <br>return true; <br>} <br>/*SQL:GetRows() 返回查询的记录总数*/ <br>function GetRows($table,$condition=1){ <br>$sql=&quot;select count(1) as count from $table where $condition&quot;; <br>//echo $sql.&quot;&lt;br&gt;&quot;; <br>$this-&gt;result=@mysql_query($sql,$this-&gt;dbLink); <br>if($this-&gt;result){ <br>$temp=@mysql_fetch_array($this-&gt;result); <br>$this-&gt;numRows=$temp[count]; <br>}else{ <br>$this-&gt;Halt($sql); <br>return false; <br>} <br>return $this-&gt;numRows; <br>} <br>/*SQL:Insert()*/ <br>function Insert($table,$columns,$values){ <br>$sql=&quot;insert into $table ($columns) values ($values)&quot;; <br>//echo $sql; <br>$this-&gt;result=@mysql_query($sql,$this-&gt;dbLink); <br>if ($this-&gt;result) <br>$this-&gt;insId=@mysql_insert_id($this-&gt;dbLink); <br>else{ <br>$this-&gt;Halt($sql); <br>return false; <br>} <br>return true; <br>} <br>/*SQL:Update()*/ <br>function Update($table,$setings,$condition){ <br>$sql=&quot;update $table set $setings where $condition&quot;; <br>//echo $sql; <br>$this-&gt;result=@mysql_query($sql,$this-&gt;dbLink); <br>if ($this-&gt;result) <br>$this-&gt;numRows=@mysql_affected_rows($this-&gt;result); <br>else{ <br>$this-&gt;Halt($sql); <br>return false; <br>} <br>return true; <br>} <br>/*SQL:Delete*/ <br>function Delete($table,$condition){ <br>$sql=&quot;delete from $table where $condition&quot;; <br>$this-&gt;result=@mysql_query($sql,$this-&gt;dbLink); <br>if ($this-&gt;result) <br>$this-&gt;numRows=@mysql_affected_rows($this-&gt;result); <br>else{ <br>$this-&gt;Halt($sql); <br>return false; <br>} <br>return true; <br>} <br>/*Halt():error message */ <br>function Halt($msg){ <br>if($this-&gt;msgFlag==&quot;yes&quot;){ <br>printf(&quot;&lt;b&gt;Database Query Error:&lt;/b&gt; %s&lt;br&gt;\n&quot;, $msg); <br>printf(&quot;&lt;b&gt;MySql Error:&lt;/b&gt; %s&lt;br&gt;\n&quot;,mysql_error()); <br>}else <br>echo &quot;&lt;META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'&gt;&quot;;//自定一个出错提示文件 <br>return false; <br>} <br>} <br>switch($db-&gt;dbType){ <br>case 1: <br>@mysql_close(); <br>break; <br>case 2: <br>break; <br>} <br>$db = new Database(); <br>?&gt;<br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245167089#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:44:49 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245167089</guid>
</item>

<item>
<title><![CDATA[PHP初学者应掌握的几段精华代码]]></title>
<link>http://522817368.qzone.qq.com/blog/1245166963</link>
<description><![CDATA[经典循环例子<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;经典循环例子&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>for($counter = 1; $counter &lt;= 6; $counter++) //循环6次 <br>{ <br>print(&quot;&lt;B&gt;counter is $counter&lt;/B&gt;&lt;BR&gt;\n&quot;); //打印6次 <br>} <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br><br>for的高级运用 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;for的高级运用&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>/* <br>** 打印必要的说明文字 <br>*/ <br>print(&quot;&lt;B&gt;距离星期一还有几天？&lt;/B&gt;\n&quot;); <br>print(&quot;&lt;OL&gt;\n&quot;); <br>for($currentDate = date(&quot;U&quot;); //定义$currentDate时间格式 <br>date(&quot;l&quot;, $currentDate) != &quot;Monday&quot;; //判断是不是当前系统时间是Monday <br>$currentDate += (60 * 60 * 24)) //当前时间加上1天 <br>{ <br>/* <br>** 打印时间名称 <br>*/ <br>print(&quot;&lt;LI&gt;&quot; . date(&quot;l&quot;, $currentDate) . &quot;\n&quot;); <br>}<br>print(&quot;&lt;/OL&gt;\n&quot;); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br>函数的简单调用:<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;简单的函数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;FONT SIZE=5&gt; <br>&lt;? <br>function printBold($inputText) //定义function printBold（） <br>{ <br>print(&quot;&lt;B&gt;&quot; . $inputText . &quot;&lt;/B&gt;&quot;); ////打印$inputText <br>} <br>print(&quot;这行没有加重！&lt;BR&gt;\n&quot;); //直接打印字符串 <br>printBold(&quot;这行加重了！！！&quot;); //调用function printBold()函数 <br>print(&quot;&lt;BR&gt;\n&quot;); <br>print(&quot;这行没有加重！&lt;BR&gt;\n&quot;); //直接打印字符串 <br>?&gt; <br>&lt;/FONT&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>有返回值的函数 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;有返回值的函数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;FONT SIZE=5&gt; <br>&lt;? <br>function makeBold($inputText) //定义function makeBold()函数 <br>{ <br>$boldedText = &quot;&lt;B&gt;&quot;; <br>$boldedText .= $inputText; <br>$boldedText .= &quot;&lt;/B&gt;&quot;; <br>return($boldedText); //返回变量$boldedText <br>} <br>print(&quot;这行没有加重！！！&lt;BR&gt;\n&quot;); //直接打印字符串 <br>print(makeBold(&quot;这行被加重了！！！&quot;) . &quot;&lt;BR&gt;\n&quot;);//调用function makeBold()函数 <br>print(&quot;这行没有加重！！！&lt;BR&gt;\n&quot;); //直接打印字符串 <br>?&gt; <br>&lt;/SIZE&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br>有默认参数的函数 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;有默认参数的函数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;FONT SIZE=5&gt; <br>&lt;? <br>function printColored($Text, $Color=&quot;black&quot;) //定义function函数 <br>{ <br>print(&quot;&lt;FONT COLOR=\&quot;$Color\&quot;&gt;$Text&lt;/FONT&gt;&quot;); //获取字符串的内容和颜色 <br>} <br>printColored(&quot;这是黑颜色的字！&quot;); //调用function函数 <br>print(&quot;&lt;BR&gt;&lt;BR&gt;\n&quot;); <br>printColored(&quot;这是蓝颜色的字！&quot;, &quot;blue&quot;); //调用function函数 <br>print(&quot;&lt;BR&gt;\n&quot;); <br>?&gt; <br>&lt;/SIZE&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br>用的规算法判断是否是整数<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;判断整数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>function checkInteger($Number) <br>{ <br>if($Number &gt; 1) <br>{ <br>/* 整数减1仍然是整数 */ <br>return(checkInteger($Number-1)); <br>} <br>elseif($Number &lt; 0) <br>{ <br>/* 对于一个负数，*/ <br>/* 可以分析它的绝对值*/ <br>return(checkInteger((-1)*$Number-1));//取绝对值，把负数按整数分析 <br>} <br>else <br>{ <br>if(($Number &gt; 0) AND ($Number &lt; 1)) <br>{ <br>return(&quot;当然不是&quot;); <br>} <br>else <br>{ <br>/* 0 和 1 是整数 */ <br>/* 根据相关数学定义 */ <br>return(&quot;是的&quot;); <br>} <br>} <br>} <br>print(&quot;&lt;B&gt;0是整数吗？&lt;/B&gt;&quot; . <br>checkInteger(0) . &quot;&lt;BR&gt;\n&quot;); <br>print(&quot;&lt;B&gt;7是整数吗？&lt;/B&gt; &quot; . <br>checkInteger(7) . &quot;&lt;BR&gt;\n&quot;); <br>print(&quot;&lt;B&gt;3.5呢？&lt;/B&gt;&quot; . checkInteger(3.5) . &quot;&lt;BR&gt;\n&quot;); <br>print(&quot;&lt;B&gt;那么-5呢？&lt;/B&gt;&quot; . checkInteger(-5) . &quot;&lt;BR&gt;\n&quot;); <br>print(&quot;&lt;B&gt;还有-9.2？&lt;/B&gt;&quot; . checkInteger(-9.2) . &quot;&lt;BR&gt;\n&quot;); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>初始化数组<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;初始化数组&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;FONT SIZE=5&gt; <br>&lt;? <br>$monthName = array(1=&gt;&quot;January&quot;, &quot;February&quot;, &quot;March&quot;,//初始化一个数组 <br>&quot;April&quot;, &quot;May&quot;, &quot;June&quot;, &quot;July&quot;, &quot;August&quot;, <br>&quot;September&quot;, &quot;October&quot;, &quot;November&quot;, &quot;December&quot;); <br>print(&quot; 英语的“5月”是&lt;B&gt; $monthName[5] &lt;/B&gt;。&lt;BR&gt;\n&quot;);//打印数组中的第6个元素 <br>?&gt; <br>&lt;/FONT&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>获取数组中的元素 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;获取数组中的元素&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;? <br>$monthName = array( <br>/*定义$monthName[1]到$monthName[12]*/ <br>1=&gt;&quot;January&quot;, &quot;February&quot;, &quot;March&quot;, <br>&quot;April&quot;, &quot;May&quot;, &quot;June&quot;, <br>&quot;July&quot;, &quot;August&quot;, &quot;September&quot;, <br>&quot;October&quot;, &quot;November&quot;, &quot;December&quot;, <br>/*定义$monthName[&quot;Jan&quot;]到$monthName[&quot;Dec&quot;]*/ <br>&quot;Jan&quot;=&gt;&quot;January&quot;, &quot;Feb&quot;=&gt;&quot;February&quot;, <br>&quot;Mar&quot;=&gt;&quot;March&quot;, &quot;Apr&quot;=&gt;&quot;April&quot;, <br>&quot;May&quot;=&gt;&quot;May&quot;, &quot;Jun&quot;=&gt;&quot;June&quot;, <br>&quot;Jul&quot;=&gt;&quot;July&quot;, &quot;Aug&quot;=&gt;&quot;August&quot;, <br>&quot;Sep&quot;=&gt;&quot;September&quot;, &quot;Oct&quot;=&gt;&quot;October&quot;, <br>&quot;Nov&quot;=&gt;&quot;November&quot;, &quot;Dec&quot;=&gt;&quot;December&quot;, <br>/*定义$monthName[&quot;Jan&quot;]到$monthName[&quot;Dec&quot;]*/ <br>&quot;January&quot;=&gt;&quot;January&quot;, &quot;February&quot;=&gt;&quot;February&quot;, <br>&quot;March&quot;=&gt;&quot;March&quot;, &quot;April&quot;=&gt;&quot;April&quot;, <br>&quot;May&quot;=&gt;&quot;May&quot;, &quot;June&quot;=&gt;&quot;June&quot;, <br>&quot;July&quot;=&gt;&quot;July&quot;, &quot;August&quot;=&gt;&quot;August&quot;, <br>&quot;September&quot;=&gt;&quot;September&quot;, &quot;October&quot;=&gt;&quot;October&quot;, <br>&quot;November&quot;=&gt;&quot;November&quot;, &quot;December&quot;=&gt;&quot;December&quot; <br>); <br>/*打印相关的元素*/ <br>print(&quot;Month &lt;B&gt;5&lt;/B&gt; is &lt;B&gt;&quot; . $monthName[5]. &quot;&lt;/B&gt;&lt;BR&gt;\n&quot;); <br>print(&quot;Month &lt;B&gt;Aug&lt;/B&gt; is &lt;B&gt;&quot; . $monthName[&quot;Aug&quot;] . &quot;&lt;/B&gt;&lt;BR&gt;\n&quot;); <br>print(&quot;Month &lt;B&gt;June&lt;/B&gt; is &lt;B&gt;&quot; . $monthName[&quot;June&quot;] . &quot;&lt;/B&gt;&lt;BR&gt;\n&quot;); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>创建一个多维数组 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;创建一个多维数组&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;? <br>$Cities = array( //二维数组array（） <br>&quot;华北地区&quot;=&gt;array( <br>&quot;北京市&quot;, <br>&quot;天津市&quot;, <br>&quot;石家庄&quot; <br>), <br>&quot;西北地区&quot;=&gt;array( <br>&quot;西安&quot;, <br>&quot;拉萨&quot; <br>) <br>); <br>print(&quot;华北地区: &quot;.$Cities[&quot;华北地区&quot;][0]); //打印$Cities[&quot;华北地区&quot;][0] <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>PHP 4.0实现表格状打印<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;实现表格状打印&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>/* <br>** 数据表格化 <br>*/<br>print(&quot;&lt;TABLE bgcolor='ffccoo' BORDER=\&quot;1\&quot;&gt;\n&quot;); // 表格开始<br><br>for($Row=1; $Row &lt;= 12; $Row ++) <br>{ <br>print(&quot;&lt;TR&gt;\n&quot;); // 开始行<br>// do each column <br>for($Column=1; $Column &lt;= 12; $Column ++) <br>{ <br>print(&quot;&lt;TD&gt;&quot;);//开始列 <br>print($Row * $Column);//表格元素乘积 <br>print(&quot;&lt;/TD&gt;&quot;); <br>}<br>print(&quot;&lt;/TR&gt;\n&quot;); // 行结束<br>}<br>print(&quot;&lt;/TABLE&gt;\n&quot;); // 表格结束<br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br>查看系统的一些变量<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;查看PHP的环境变量&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>print(&quot;你正在用文件的名字为： &quot;); <br>print(__FILE__); <br>print(&quot; &lt;BR&gt;\n&quot;); <br>print(&quot;&lt;hr&gt;&quot;); <br>print(&quot;你的操作系统为： &quot;); <br>print(PHP_OS); <br>print(&quot;&lt;hr&gt;&quot;); <br>print(&quot;你的php的版本为： &quot;); <br>print(PHP_VERSION) <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br>打开本地或者远程文件<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;打开本地或者远程文件&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>print(&quot;&lt;H3&gt;通过http协议打开文件&lt;/H3&gt;\n&quot;); <br>// 通过 http 协议打开文件 <br>if(!($myFile = fopen(&quot;d:web/web/php/test/data.txt&quot;, &quot;r&quot;))) <br>{ <br>print(&quot;文件不能打开&quot;); <br>exit; <br>} <br>while(!feof($myFile)) //循环 <br>{ <br>// 按行读取文件中的内容 <br>$myLine = fgetss($myFile, 255); <br>print(&quot;$myLine &lt;BR&gt;\n&quot;); <br>} <br>// 关闭文件的句柄 <br>fclose($myFile); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>打开文件的几种方式比较<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;读取文件内容&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>// 打开文件同时打印文件的每一个字符 <br>if($myFile = fopen(&quot;data.txt&quot;, &quot;r&quot;)) <br>{ <br>while(!feof($myFile)) <br>{ <br>$myCharacter = fgetc($myFile); <br>print($myCharacter); <br>} <br>fclose($myFile); <br>} <br>?&gt; <br>&lt;? print(&quot;&lt;hr&gt;&quot;);?&gt; <br>&lt;? <br>// 打开文件同时打印文件的每一行 <br>if($myFile = fopen(&quot;data.txt&quot;, &quot;r&quot;)) <br>{ <br>while(!feof($myFile)) <br>{ <br>$myLine = fgets($myFile, 255); <br>print($myLine); <br>} <br>fclose($myFile); <br>} <br>?&gt; <br>&lt;? print(&quot;&lt;hr&gt;&quot;);?&gt; <br>&lt;? <br>/* 打开文件同时打印文件的每一行, <br>同时去掉取回字符串中的 HTML 语言 <br>*/ <br>if($myFile = fopen(&quot;data.txt&quot;, &quot;r&quot;)) <br>{ <br>while(!feof($myFile)) <br>{ <br>$myLine = fgetss($myFile, 255); <br>print($myLine); <br>} <br>fclose($myFile); <br>} <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>访问文件常见属性<br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;访问文件常见属性&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;BR&gt; <br>&lt;? <br>print(&quot;文件的所有者（UID 值）：&quot;); <br>print(fileowner(&quot;data.txt&quot;).&quot;&lt;br&gt;&quot;); <br>print(&quot;文件的大小：&quot;); <br>print(filesize(&quot;data.txt&quot;).&quot;&lt;br&gt;&quot;); <br>print(&quot;文件的类型：&quot;); <br>print(filetype(&quot;data.txt&quot;).&quot;&lt;br&gt;&quot;); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>调用文本文件内容 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;调用文本文件内容&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;CENTER&gt; <br>&lt;? <br>// 打开文件同时，打印每一行 <br>$myFile = file( &quot;data.txt&quot;); <br>for($index = 0; $index &lt; count($myFile); $index++) <br>{ <br>print($myFile[$index].&quot;&lt;BR&gt;&quot;); <br>} <br>?&gt; <br>&lt;/CENTER&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>创建目录函数 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;创建目录函数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>if(mkdir(&quot;myDir1&quot;, 0777)) //创建目录的函数 <br>{ <br>print(&quot;目录创建成功&quot;); //目录建立成功 <br>} <br>else <br>{ <br>print(&quot;目录建立失败!&quot;); //目录建立失败 <br>} <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>浏览目录 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;浏览目录&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>// 使用表格浏览目录的结构 <br>print(&quot;&lt;TABLE BORDER=\&quot;1\&quot;&gt;\n&quot;); <br>// 创建表格的头 <br>print(&quot;&lt;TR&gt;&lt;font color='red'&gt;\n&quot;); <br>print(&quot;&lt;TH&gt;文件名&lt;/TH&gt;\n&quot;); <br>print(&quot;&lt;TH&gt;文件的大小&lt;/TH&gt;\n&quot;); <br>print(&quot;&lt;/font&gt;&lt;/TR&gt;\n&quot;); <br>$myDirectory = opendir(&quot;.&quot;); // 建立操作目录的句柄 <br>// 读出目录中的每一个子项 <br>while($entryName = readdir($myDirectory)) <br>{ <br>print(&quot;&lt;TR&gt;&quot;); <br>print(&quot;&lt;TD&gt;$entryName&lt;/TD&gt;&quot;); <br>print(&quot;&lt;TD ALIGN=\&quot;right\&quot;&gt;&quot;); <br>print(filesize($entryName)); <br>print(&quot;&lt;/TD&gt;&quot;); <br>print(&quot;&lt;/TR&gt;\n&quot;); <br>} <br>closedir($myDirectory); // 关闭目录 <br>print(&quot;&lt;/TABLE&gt;\n&quot;); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>PHP相关信息 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;PHP相关信息&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>phpinfo(); <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>常用的数值判断函数 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;常用的数值判断函数&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt; <br>&lt;? <br>//判断数组 <br>$colors = array(&quot;red&quot;, &quot;blue&quot;, &quot;green&quot;); <br>if(is_array($colors)) <br>{ <br>print(&quot;colors is an array&quot;.&quot;&lt;br&gt;&quot;); <br>} <br>//双精度数判断 <br>$Temperature = 15.23; <br>if(is_double($Temperature)) <br>{ <br>print(&quot;Temperature is a double&quot;.&quot;&lt;br&gt;&quot;); <br>} <br>//整数判断 <br>$PageCount = 2234; <br>if(is_integer($PageCount)) <br>{ <br>print(&quot;$PageCount is an integer&quot;.&quot;&lt;br&gt;&quot;); <br>} <br>//对象判断 <br>class widget <br>{ <br>var $name; <br>var $length; <br>} <br>$thing = new widget; <br>if(is_object($thing)) <br>{ <br>print(&quot;thing is an object&quot;.&quot;&lt;br&gt;&quot;); <br>} <br>//字符判断 <br>$Greeting = &quot;Hello&quot;; <br>if(is_string($Greeting)) <br>{ <br>print(&quot;Greeting is a string&quot;.&quot;&lt;br&gt;&quot;); <br>} <br>?&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt; <br>文件上传界面 <br>&lt;HTML&gt; <br>&lt;HEAD&gt; <br>&lt;TITLE&gt;文件上传界面&lt;/TITLE&gt; <br>&lt;/HEAD&gt; <br>&lt;BODY&gt;&lt;TABLE&gt;&lt;CENTER&gt; <br>&lt;? <br>if($UploadAction){ <br>$UploadAction=0; <br>$TimeLimit=60; <br>/*设置超时限制时间默认时间为 30s，设置为0时为不限时 */ <br>set_time_limit($TimeLimit); <br>If(($Upfile != &quot;none&quot;)&amp;&amp; <br>($Upfile != &quot;&quot;)) <br>{ <br>$Filepath=&quot;d:\web\web\php\test&quot;; //上载文件存放路径 <br>$FileName=$Filepath.$Upfile_name; <br>if($Upfile_size &lt;1024) //上载文件大小 <br>{$FileSize = (string)$Upfile_size . &quot;字节&quot;;} <br>elseif($Upfile_size &lt;(1024 * 1024)) <br>{ <br>$FileSize = number_format((double)($Upfile_size / 1024), 1) . &quot; KB&quot;; <br>} <br>else <br>{ <br>$FileSize = number_format((double)($Upfile_size/(1024*1024)),1).&quot;MB&quot;; <br>} <br>if(!file_exists($FileName)) <br>{ <br>if(copy($Upfile,$FileName)) <br>{unlink($Upfile); <br>echo &quot;&lt;br&gt;&lt;br&gt;\n&quot;; <br>echo &quot;文件 $Upfile_name 已上载成功！&quot;; <br>echo &quot;&lt;br&gt;&lt;br&gt;\n&quot;; <br>echo &quot;文件位置：$FileName&quot;; <br>echo &quot;&lt;br&gt;&lt;br&gt;\n&quot;; <br>echo &quot;文件大小：$FileSize&quot;; <br>echo &quot;&lt;br&gt;&lt;br&gt;\n&quot;; <br>} <br>else <br>{echo &quot;文件 $Upfile_name上载失败！&quot;; } <br>} <br>else <br>{echo &quot;文件 $Upfile_name已经存在！&quot;; } <br>} <br>else <br>{echo &quot;你没有选择任何文件上载！&quot;; } <br>set_time_limit(30); //恢复默认超时设置 <br>} <br>?&gt; <br>&lt;FORM ENCTYPE = &quot;multipart/form-data&quot; NAME = &quot;SubmitForm&quot; <br>ACTION = &quot;default.php&quot; METHOD = &quot;POST&quot;&gt; <br>&lt;INPUT TYPE = &quot;hidden&quot; NAME = &quot;MAX_FILE_SIZE&quot; VALUE =&quot;1000000&quot;&gt; <br>&lt;INPUT TYPE = &quot;hidden&quot; NAME = &quot;UploadAction&quot; VALUE = &quot;1&quot;&gt; <br>&lt;TR&gt;&lt;TD&gt;&lt;INPUT NAME = &quot;Upfile&quot; TYPE = &quot;file&quot; SIZE = &quot;30&quot;&gt;&lt;/TD&gt; <br>&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;INPUT NAME = &quot;submit&quot; VALUE = &quot;提交&quot; TYPE = &quot;submit&quot;&gt; <br>&lt;INPUT NAME = &quot;reset&quot; VALUE = &quot;重置&quot; TYPE = &quot;reset&quot;&gt;&lt;/TD&gt; <br>&lt;/TR&gt;&lt;/FORM&gt;&lt;/CENTER&gt;&lt;/TABLE&gt; <br>&lt;/BODY&gt; <br>&lt;/HTML&gt;<br><br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245166963#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:42:43 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245166963</guid>
</item>

<item>
<title><![CDATA[网站链接的基础知识]]></title>
<link>http://522817368.qzone.qq.com/blog/1245166804</link>
<description><![CDATA[最初的链接计算是基于链接数量的，即一个网页外部链接数量越多，在搜索引擎上的得分也就越高。原理如下：<br>　　假设A，B两个网页。A有2个外部链接，B有10个外部链接。因为B的外部链接数远远多于A，表明有更多站点指向B，则搜索引擎将认为页面B比页面A更具“重要性”或“权威性”，即B比A具有更高的投票权值(Voting Power)。有趣的是：由于网页具有将其投票权值平均分配给它的所有导出链接的特性，对A和B来说，在相同导出链接数量的前提下，搜索引擎认定B的导出链接比A更具重要性。换言之，PR值高而且导出链接数又少的网站成为理想的链接目标。后来链接质量分析这一环节被引入了链接分析系统，并且把链接的质量和关联度都提到了首位。因为搜索引擎认为：一个低劣的网站几乎没可能获得高质量的外部链接。对于链接的质量，不同搜索引擎有其不同衡量方法，但要点是相通的-–只有那些与你的目标关键词关联的高质量站点的外部链接才是最理想的链接目标。即使获得上百个质量低劣的或内容毫不相干的站点的链接也抵不上一个高质量且内容高度相关或互补的站点的链接。<br>　　内链/导入链接/导出链接<br>　　内链(Internal Links)<br>　　所谓内链，即内部链接。指的是同一站点内网页之间的相互链接。可别小瞧内链，它在整个网站，尤其是对一些深层页面的浏览和检索扮演着至关重要的角色。内链在GOOGLE中的作用亦不可小觑，如同一个网站会将其PageRank值传递给链至它的站点一样，内部链接也会将其PR值传递给所链页面。所以当你通过创建外部链接而获得了更高的PR值时，如果你的网站导航结构设计合理，那么你的其它内部页面亦能够得到一定的PR值。<br>　　此外，大多数搜索引擎比较关注链接文本中出现的关键词。假设有一个摄像摄影公司，其首页的三个内链文字分别为：“婚礼摄像”、“企业专题庆典摄像”、“生日/寿庆摄像”。这些链接文字不但清楚地表明了所链接的内容，即它们究竟是什么网页，同时又充分利用目标关键词进行了优化。然而有很多网站忽略了对链接文字的优化，象返回主页链接只写着“主页”两个字的例子实在是屡见不鲜。<br>　　后链(backlink)/导入链接(inbound links)/导出链接(outbound links)<br>　　导入链接和后链(也叫逆向链接)的含义相同，指链至你网站的站点，也就是我们一般所说的“外部链接”。而当你链至另外一个站点，那么这个站点就是你的“导出链接”。所以导出链接就是你向别的网站提供的本站链接。<br>　　理论上讲搜索引擎的链接分析机制只关心你的“导入链接”，即究竟有多少站点链到了你的网站上。至于你向别的网站提供了多少本站链接，这并不是它们关心的问题。所以导出链接不会对排名造成影响。--实际上我们却发现，对你辛苦得到的“导入链接”，即使它们具有同等重要性(PR值相同)，Google也并不是一视同仁，只有那些导出链接较少的“导入链接”才能使它产生好感。而在Inktomi中，一个有导出链接的站点其排名要比没有导出链接的站点稍好一点。<br>　　如何检查Link Popularity<br>　　不同的搜索引擎对于链接广泛度(Link Popularity)的计算方法和分析方法都是不同的。这也就是为什么你可能从AltaVista上得到很高的LP值，而在Google上却未必如此。<br>　　接下来，我们就以<a href="http://www.xker.com" target="_blank">http://www.xker.com</a><wbr />为例，介绍如何通过一些知名搜索引擎检查你的链接广泛度(注：指令中无须<a href="http://www" target="_blank">http://www</a><wbr />前缀)：<br>　　Altavista &amp; Infoseek<br>　　LINK:xker.com<br>　　所有链至该主域的站点都将被列出来。<br>　　由于一个站点的不同页面之间是互相链接的，所以上述指令最后得到的结果中也包括了那些链接到你的索引(主)页的内部页面(我们称之为内链)。如果只想看到不包含内链的结果，可输入如下指令：<br>　　LINK:xker.com-URL:xker.com<br>　　如欲查看一特定页面的链接广泛度，可在Altavista中输入如下指令：<br><br>　　LINK:xker.com/index.html<br>　　Google<br>　　LINK:xker.com<br>　　结果为链至该主域的所有站点，包括内链。Google未提供消除内链的指令。<br>　　Inktomi及其隶属搜索引擎如HotBot, AOL, iWon和MSN<br>　　LINKDOMAIN:xker.com<br>　　结果为链至该主域的所有站点，包括内链。<br>　　LINKDOMAIN:xker.com-DOMAIN:xker.com<br>　　结果为链至该主域的所有外部站点。<br>　　Fast/Alltheweb<br>　　LINK.ALL:xker.com或LINK:xker.com<br>　　结果为链至该主域的所有网页，包括内链。<br>　　如何策划你的外部链接<br>　　在网站的搜索引擎优化中,链接广泛度可谓最难也是最耗时间一个环节.我们建议大家从下面这几个方面着手,合理而行之有效地策划你的外部链接：<br>　　1) 确保网站提供了实用和高质量的内容：<br>　　万变不离其宗，无论排名算法再怎么变，网站内容始终是克敌制胜的法宝。<br>　　人们总是乐意去跟那些内容丰富而独特的站点交换链接。所以，如果你的网站内容还不那么充足，那就尽量多加入内容，努力让它变成一个真正的“内容提供者”吧。可撰写一些与你的网站关键词密切相关，而又使访问者感兴趣的文章和指南。<br>　　如果没时间做而且又舍得花大价钱，那就雇一个专业的撰稿人吧，切忌在这些文章中大肆宣扬你的网站，而是应当遵循真正地为访问者提供实用信息的原则。记住，你的最大资产还是你的网站内容。一旦网站提供了大量实用信息，亦会大大增加获得高质量链接的机会。<br><br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245166804#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:40:04 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245166804</guid>
</item>

<item>
<title><![CDATA[详解UCenter Home如何网站服务器搬家]]></title>
<link>http://522817368.qzone.qq.com/blog/1245166718</link>
<description><![CDATA[UCenter Home是Comsenz公司发布的一款SNS建站系统，目前最新版本是1.5。最近看到很多站长安装好UCenter Home，运行一段时间后，可能由于种种原因，需要更换服务器，这时就需要对UCenter Home进行搬家的操作，下面笔者就为大家仔细讲解，UCenter Home 搬家的详细步骤。<br>　　注意：很多站长不只安装了 UCenter Home 这一个应用，可能同时还安装了论坛。<br>　　所以我们本教程以服务器上安装（UCenter 1.5.0＋UCenter Home 1.5 正式版本＋Discuz!7.0.0 为例的虚拟空间讲解）<br>　　一、关闭站点<br>　　1、关闭 UCenter Home<br>　　管理员登录 UCenter Home 管理后台 =&gt; 基本设置 =&gt; 站点设置 =&gt; 站点关闭访问，选择“是”。<br>　　<br>图1<br><br>　　2、关闭论坛<br>　　管理员登录论坛后台 =&gt; 全局 =&gt; 站点信息 =&gt; 论坛关闭，选择“是”。<br>　　<br>图2<br><br>　　二、备份数据<br>　　从 UCenter 备份数据<br>　　登录 UCenter 后台 =&gt; 数据备份<br>　　<br>图3<br><br>　　注意：在 UCenter 下可以只备份 UCenter 的数据，也可以备份所有应用或者部分应用的数据。<br>　　这里我们选择备份所有应用的数据。提交等待备份完成，可以到数据备份记录里查看<br>　　<br>图4<br><br>　　这里可以很明确的看到备份记录和备份数据的日期，点击详情，可以查看到详细的信息，如下图所示：<br>　　<br>图5<br><br>　　这样就把所有数据都备份好了。如果不放心也可以再到 UCenter Home 后台，以及论坛后台进行单个应用的备份。<br>　三、备份程序文件 <br>　　1、备份 UCenter 的所有程序文件，尤其注意 data 目录以及其下的 config.inc.php 文件一定不能丢失。 <br>　　注意：data 目录下的 backup 目录下存放的是刚才备份的数据 <br>　　avatar 目录下存放的是所有应用会员的头像图片，所以这些文件一定不能丢失 <br>　　2、备份 UCenter Home 的程序文件，要备份所有的程序文件。尤其注意 data 目录和 attachment 目录以及 config.php 文件一定不能丢失。 <br>　　3、备份论坛的程序文件，要备份所有的程序文件。尤其注意 attachment 附件目录以及 config.inc.php 文件一定不能丢失。 <br>　　方法：登录到 FTP 下载所有的程序文件到本地即可 <br>　　 <br>图6<br> <br>　　四、对新服务器的要求<br>　　确保搬入服务器和原服务器的数据库版本和编码一致，如果编码一不致可能会出现乱码的情况。<br>　　五、恢复备份程序<br>　　1、首先把备份的程序文件分别上传到新服务器上相应的目录里<br>　　在新服务器根目录下分别新建 uc、home 和 bbs 三个目录<br>　　UCenter 程序上传到 ./uc， UCenter Home 程序上传到 ./home 下，论坛程序上传到 ./bbs下，如下图所示：<br>　　<br>图7<br><br>　　2、修改目录权限<br>　　1）UCenter<br>　　如果您的主机为 *nix 操作系统，将以下目录、以及该目录下面的所有文件的属性设置为 777，Win 主机请设置 internet 来宾帐户<br>　　可读写属性。<br>　　./data<br>　　./data/avatar<br>　　./data/backup<br>　　./data/cache<br>　　./data/logs<br>　　./data/tmp<br>　　./data/view<br>　　./data/config.inc.php<br>　　关于目录权限修改可以参考：<a href="http://faq.comsenz.com/viewnews-183" target="_blank">http://faq.comsenz.com/viewnews-183</a><wbr /><br>　　2）UCenter Home<br>　　如果您的主机为 *nix 操作系统，请设置如下文件夹权限改为 777，Windows 主机设置 Internet 来宾帐号可读写的权限。<br>　　attachment<br>　　data<br>　　data/*.*<br>　　uc_client/date<br>　　config.php (安装完毕 777 取消)<br>　　3）论坛<br>　　如果您的主机为 *nix 操作系统，请将服务器上以下目录、以及该目录下面的所有文件的属性设置为 777，Win 主机请设置internet 来宾帐户可读写属性。<br>　　./config.inc.php<br>　　./attachments<br>　　./forumdata<br>　　./forumdata/cache<br>　　./forumdata/templates<br>　　./forumdata/threadcaches<br>　　./forumdata/logs<br>　　./uc_client/data/cache<br>3、全新安装各应用<br>　　1）安装 UCenter<br>　　在浏览器中运行安装程序（<a href="http://www.domain.com/uc/install" target="_blank">http://www.domain.com/uc/install</a><wbr />）进入准备安装页面进行安装即可，具体的安装方法请参考：<br>　　<a href="http://faq.comsenz.com/viewnews-449" target="_blank">http://faq.comsenz.com/viewnews-449</a><wbr /> （参考从第三步以后的步骤）<br>　　注意：安装的时候 UCenter 数据库名以及表名前缀一定要和原来的一致。<br>　　2）安装 UCenter Home<br>　　安装前请先删除 ./home/data/install.lock 文件，再次运行安装文件<br>　　<br>图8<br><br>　　参考这里的教程：<a href="http://faq.comsenz.com/viewnews-486" target="_blank">http://faq.comsenz.com/viewnews-486</a><wbr />（参考从第二步以后的步骤）<br>　　注意：安装的时候 UCenter Home 数据库名以及表名前缀一定要和原来的一致。<br>　　3）安装论坛<br>　　安装前先检查一下 ./bbs/install/index.php 这个文件是否存在，如果不存在请上传相同版本的论坛程序，上传这个文件到相应的目录下。<br>　　<br>图9<br><br>　　同时安装论坛前要把 ./forumdata/install.lock 文件删除。<br>　　<br>图10<br><br>　　安装参考这里的教程：<br>　　<a href="http://faq.comsenz.com/viewnews-487" target="_blank">http://faq.comsenz.com/viewnews-487</a><wbr />（参考从第三步以后的步骤）<br>　　注意：安装的时候论坛数据库名以及表名前缀一定要和原来的一致。<br>　　4、登录 UCenter 后台，检查各应用是否通信成功。<br>　　 　六、恢复数据库<br>　　创始人登录 UCenter 后台 =&gt; 数据备份 =&gt; 数据备份记录，如下图所示：<br>　　<br>图12<br>　　<br>图13<br><br>　　选中全部的应用，提交即可导入数据<br>　　<br>图14<br><br>　　等待数据全部导入，如下图所示：<br>　　<br>图15<br><br>　　七、后续操作<br>　　1、由于 UCenter Home 以及论坛的 URL 路径和之前比发生了变化，所以要在 UCenter 后台修改为正确的路径。<br>　　UCenter 管理后台 =&gt; 应用管理 =&gt; 编辑 UCenter Home 以及论坛的 URL 路径<br>　　<br>图16<br><br>　　<br>图17<br><br>　　2、检查应用的 UCenter 配置信息<br>　　UCenter 管理后台 =&gt; 应用管理 =&gt; 编辑 UCenter Home 以及论坛的应用，找到应用的 UCenter 配置信息，复制其中的全部内容，<br>　　分别覆盖UCenter Home 以及论坛的 config 文件最后的关于 UCenter 的配置信息<br>　　　　3、更新 UCenter、UCenter Home 以及论坛的缓存<br>　　这样搬家就全部完成了。<br><br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245166718#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:38:38 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245166718</guid>
</item>

<item>
<title><![CDATA[Google Guice范例解说之使用入门]]></title>
<link>http://522817368.qzone.qq.com/blog/1245166684</link>
<description><![CDATA[本文通过范例简单地介绍Google Guice的使用，通过下面的范例我们可以知道，Google Guice的使用非常简单。<br>　　Google Guice需要使用JDK1.5以上java环境。<br>　　下载Google Guice之后，<br>　　有以下几个文件：<br>　　aopalliance.jar<br>　　guice-1.0.jar<br>　　guice-servlet-1.0.jar<br>　　guice-spring-1.0.jar<br>　　guice-struts2-plugin-1.0.jar<br>　　本例只使用到guice-1.0.jar文件，将其加入到class path中。<br>　　下面简单地介绍范例：<br>　　范例1：使用com.google.inject.Module接口实现类<br>文件名 说明 <br>HelloGuice.java 业务逻辑接口定义文件 <br>HelloGuiceImpl.java 业务逻辑接口实现文件 <br>HelloGuiceModule.java 该文件必须实现com.google.inject.Module接口 <br>TestGuice.java 测试文件<br><br>HelloGuice.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>public interface HelloGuice {　<br>　　public void sayHello();　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>public interface HelloGuice {<br>　　public void sayHello();<br>}<br>　　<br>HelloGuiceImpl.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>public class HelloGuiceImpl implements HelloGuice {　<br>　<br>　　public void sayHello() {　<br>　　　　System.out.println(&quot;Hello Guice!&quot;);　<br>　　}　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>public class HelloGuiceImpl implements HelloGuice {<br>　　<br>　　public void sayHello() {<br>　　　　System.out.println(&quot;Hello Guice!&quot;);<br>　　}<br>}<br>　　<br>HelloGuiceModule.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>import com.google.inject.Binder;　<br>import com.google.inject.Module;　<br>　<br>public class HelloGuiceModule implements Module {　<br>　<br>　　public void configure(Binder binder) {　<br>　　　　binder.bind(HelloGuice.class).to(HelloGuiceImpl.class);　<br>　　}　<br>　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>import com.google.inject.Binder;<br>import com.google.inject.Module;<br>　　<br>public class HelloGuiceModule implements Module {<br>　　<br>　　public void configure(Binder binder) {<br>　　　　binder.bind(HelloGuice.class).to(HelloGuiceImpl.class);<br>　　}<br>　　<br>}<br>　　<br>TestGuice.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>import junit.framework.TestCase;　<br>　<br>import com.google.inject.Guice;　<br>import com.google.inject.Injector;　<br>　<br>public class TestGuice extends TestCase {　<br>　　public void testHelloGuice() {　<br>　　　　Injector injector = Guice.createInjector(new HelloGuiceModule());　<br>　　　　　<br>　　　　HelloGuice helloGuice = injector.getInstance(HelloGuice.class);　<br>　　　　helloGuice.sayHello();　<br>　　}　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>import junit.framework.TestCase;<br>　　<br>import com.google.inject.Guice;<br>import com.google.inject.Injector;<br>　　<br>public class TestGuice extends TestCase {<br>　　public void testHelloGuice() {<br>　　　　Injector injector = Guice.createInjector(new HelloGuiceModule());<br>　　　　<br>　　　　HelloGuice helloGuice = injector.getInstance(HelloGuice.class);<br>　　　　helloGuice.sayHello();<br>　　}<br>}<br>　　运行TestGuice，打印出：<br>　　Hello Guice!<br>　　范例2：使用Java Annotation<br>　　我们也可以直接为HelloGuice加上@ImplementedBy注释，而省略掉对com.google.inject.Module的实现。<br>HelloGuice.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>import com.google.inject.ImplementedBy;　<br>　<br>@ImplementedBy(HelloGuiceImpl.class)　<br>public interface HelloGuice {　<br>　　public void sayHello();　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>import com.google.inject.ImplementedBy;<br>　　<br>@ImplementedBy(HelloGuiceImpl.class)<br>public interface HelloGuice {<br>　　public void sayHello();<br>}<br>　　<br>TestGuice.java<br>　　<br>view plaincopy to clipboardprint?<br>package com.test.guice;　<br>　<br>import junit.framework.TestCase;　<br>　<br>import com.google.inject.Guice;　<br>import com.google.inject.Injector;　<br>　<br>public class TestGuice extends TestCase {　<br>　　public void testHelloGuice() {　<br>　　　　//Injector injector = Guice.createInjector(new HelloGuiceModule());　<br>　　　　　<br>　　　　Injector injector = Guice.createInjector();　<br>　　　　HelloGuice helloGuice = injector.getInstance(HelloGuice.class);　<br>　　　　helloGuice.sayHello();　<br>　　}　<br>}　<br>　　<br>package com.test.guice;<br>　　<br>import junit.framework.TestCase;<br>　　<br>import com.google.inject.Guice;<br>import com.google.inject.Injector;<br>　　<br>public class TestGuice extends TestCase {<br>　　public void testHelloGuice() {<br>　　　　//Injector injector = Guice.createInjector(new HelloGuiceModule());<br>　　　　<br>　　　　Injector injector = Guice.createInjector();<br>　　　　HelloGuice helloGuice = injector.getInstance(HelloGuice.class);<br>　　　　helloGuice.sayHello();<br>　　}<br>}<br>　　HelloGuiceModule.java不再需要。其余的文件内容不变。<br>　　运行TestGuice，打印出：<br>　　Hello Guice!<br>　　本文通过范例简单地介绍了Google Guice的使用。至于Google Guice与Spring，Struts等的集成，本文未加涉及，请参考其他文章<br> <!--v:3.2--> ]]></description>
<category><![CDATA[网页设计]]></category>
<author><![CDATA[522817368@qq.com(辉·超越)]]></author>
<comments>http://522817368.qzone.qq.com/blog/1245166684#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 16 Jun 2009 15:38:04 GMT</pubDate>
<guid>http://522817368.qzone.qq.com/blog/1245166684</guid>
</item>

</channel>
</rss>

