c#语法之volatile关键字

volatile 关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。

volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。

volatile 关键字可应用于以下类型的字段:

  • 引用类型。
  • 指针类型(在不安全的上下文中)。请注意,虽然指针本身可以是可变的,但是它指向的对象不能是可变的。换句话说,您无法声明“指向可变对象的指针”。
  • 整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
  • 具有整数基类型的枚举类型。
  • 已知为引用类型的泛型类型参数。
  • IntPtr 和 UIntPtr。

可变关键字仅可应用于类或结构字段。不能将局部变量声明为 volatile。

下面的示例说明如何将公共字段变量声明为 volatile。

// csharp_volatile.cs
// Compile with: /target:library
class Test
{
   public volatile int i;
 
   Test(int _i)
   {
      i = _i;
   }
}

Tags:, , , , , , .

Tired of querying in antiquated SQL?

Tired of querying in antiquated SQL?

LINQPad支持C# 3.0 和 Framework 3.5的全部功能:

  • LINQ to SQL
  • LINQ to Objects
  • LINQ to XML

LINQPad 也是一个很好的学习LINQ的工具,包含《C# 3.0 in a Nutshell》一书中200个示例,可以使用LINQPad感受LINQ的超酷功能和函数编程。下面是 LINQPad的简单截图:

LINQPad 是完全免费的,无需安装,下载之后直接可以运行,只有2.12 MB大小。LINQPad 需要先安装.NET Framework 3.5,支持 SQL Express、SQL 2000、 SQL 2005和SQL 2008的有限功能。

LINQPad可以使用LINQ交互查询SQL数据库,无需再要SQL Management Studio了。

产品主页:http://www.linqpad.net/

Tags:, , , , , , , , , , .

暴雪梦幻倒计时!暗黑3正式版即将公布?

   现在玩家讨论最多的话题也就是有关暴雪的“新闻”,一大堆的暴雪迷都在争先恐后的关注着暴雪官网上那图张神秘且不断在更新的图片和最新动,今天暴雪公司的游戏设计副总监Pob Pardo则向人们暗示将会有一个新游戏会被发布。 Pob Pardo在采访时说道:“你们是想让我在我们没有正式发布之前就宣布出来?”“你看,这里现在好像有300多个人的样子,我要是现在在这里就宣布了,那我肯定会在“即将于本周在巴黎举办的WWI大会”上被8000个人剁成肉泥。不过我在这里可以保证,真实宣布的时候到来的时候将会是非常激动人心的。到时候现场所有在场的人都会非常兴奋的”。

    而就在几乎是同一时间,自著名的暗黑论坛diabloii.net的消息称:他们已经从暴雪公司获取到内幕消息——暗黑破坏神3将于这个星期六在巴黎举行的暴雪全球邀请赛中公布。(http://www.diabloii.net/n/667423/diablo-3-announcement-at-wwi)这条消息在论坛上放出之后其影响力绝对非同凡响,马上就有一大堆的暴雪迷就围绕这一新闻开始推测其真实性。 

Tags:, , , , , , , , , .

一句话点评韩国八大情色电影

《丑闻》

如果没有武松,西门庆和潘金莲的结局会如何?韩国人的答案是:同归于尽灰飞烟灭。

《红字》

据说这个电影让美女李恩珠上演了一出真实版“不疯魔不成活”——陷入角色不能自拔最终在现实世界中自我了断香消玉殒,看了电影之后,我有点相信这个传言。

《周末同床》

婚姻是一种守旧且无谓的制度还是爱情最终的归宿?这个问题跟先有鸡还是先有蛋一样,属于根本性难题?

《快乐到死》

经济基础决定上层建筑,你快乐吗?我不快乐。

《美人》

美人如玉话儿如虹,看上去真的很美,包括死亡在内。

《青春》

你是处男吗?是的,我犹如雪一样纯洁。可是,雪其实很脏。

《密爱》

只有性,没有爱,可以叫做人生吗?可以,因为终究胜过了苍白的平淡。
  
《爱的色放》

两个男人和一个女人,一个男人喜欢从后面来,一个男人喜欢从前面来,女人喜欢后者,因为她觉得前者怯懦而后者勇敢。

Tags:, , , , , , , , .

PHP学习使用资源简单总结

1. [ PHP学习讨论 ]

● 超越PHP(http://www.phpe.net)国内比较早的PHP网站,关注PHP技术,同时它的技术资料非常的多,跟phpmore结合,不管新手还是老鸟都可以去看看,但是已经近半年没有更新。

● 喜悦国际村(http://www.phpx.com)目前国内最火的PHP讨论社区,注册人数数万,PHP版面讨论激烈,高手众多,而且很多公司直接在里面发布招聘信息。

● PHP&More (http://www.phpmore.com)国内唯一的PHP电子杂志PHP&More的官方网站,由一群国内很牛的高手维护,不过 PHP&More杂志好几个月没出啦。

● PHP5研究室(http://www.phpv.net)关注新技术的研究和跟踪,能够了解新技术,同时网站制作者比较热心,一些最新的手册总能在这里找到。

● PHP中文站(http://www.openphp.cn)深空同学的个人网站,常常介绍一些新技术,新书籍,新文章什么的,不过也是有一段时间没有更新啦。

● CSDN论坛(http://community.csdn.net) CSDN论坛的Web开发的PHP版里面是个具有良好讨论氛围的地方,方便提问和回答问题,里面有很多热心的高手或者菜鸟,我常常去。

● PHP China(http://www.phpchina.cn) Zend公司在国内的代理公司,算是半个Zend官方网站,能够获取最新Zend的一些新信息。

PS: 以上网站我都常上,都是事实求是,不为某个网站做广告或者贬低那个网站。

 

2. [ PHP教程 ]

● 西交天空(http://www1.xjtusky.com/article/htmldata/3/sort_3_1.html)西交天空的PHP版比较多的PHP资料,包括很老和很新的很多资料,PHP教程做的最专业,不过目前也是小半年没有更新了。

● 网页教学网(http://www.webjx.com/htmldata/sort/26.html)网页教学网总体是个教程比较多的网站,广告也不少,PHP版的教程比较多,而且更新比较迅速及时。

● 动态网站制作指南(http://www.knowsky.com/php.asp)该网站与上一个网站有点类似,也是教程收集类的网站,PHP版教程也比较多,更新迅速。

● IBM developerWorks中国(http://www-128.ibm.com/developerworks/cn/) IBM在中文的技术文章网站,主要关注Linux/Java/开源技术等,搜索PHP能够获取非常多经典的PHP文章,包括很多PHP高级技术,推荐有一定基础的用户去阅读。

3. [ PHP著名系统 ]

● Discuz!(http://www.discuz.com)国内最著名的PHP论坛,速度快,易于定制,能够支持非常多的在线人数。该论坛分为免费版和收费版。

● PHPWind (http://www.phpwind.com)国内发展最迅速的论坛,从03年至今,已经跟Discuz!论坛有一拼了,代码质量比较高,执行速度快,这是商业版,免费版叫做Ofstar(http://www.ofstar.net)。

● Molyx论坛(http://www.molyx.com)比较强的论坛,代码质量高,代码安全,同时官方开发了多套系统跟论坛相结合。遗憾的是它的代码使用Zend加密过,所以无法直接查看源代码。

● DeDe CMS(http://www.dedecms.com)目前使用比较广泛的内容管理系统 (CMS),能够生成静态,自定义模板等,最主要的是免费并且开源的,作者同时对中文分词也有研究。

● phpArticle (http://www.21ds.net)最老牌的文章管理系统,代码干净,作者代码功底扎实,具有很高的执行效率,是很多网站的首选,不过这个慢慢被DeDe CMS所替代,主要是它更新太慢了。

● Bo-blog (http://www.bo-blog.com)著名的文本Blog系统,更新非常迅速,能够定制模板,推荐喜欢文本数据库,或者PHP 空间不支持数据库的用户使用该blog系统。

● 安全天使Blog系统 (http://www.4ngel.net/)界面、功能简洁,但是代码非常安全,因为作者本身是专门研究PHP安全的,代码值得信赖。

PS: 目前的各种PHP系统日新月异,真是好事情,我上面总结的只是很小的一部分,还有很多需要自己去发现。

4. [ PHP源码下载 ]

● 中国站长站(http://down.chinaz.com)这个很多人都知道了,源代码下载最强得网站,PHP得源代码很多,很全,更新及时,网站广告巨多。

● 源码之家(http://www.mycodes.net)非常多源码,PHP源码也不少,广告同样也不少,跟中国站长站有一拼,值得浏览。

PS: 另外,其实还有很多源码网站,可以自行搜索

5. [ PHP空间主机(收费空间)]

● E洞网(www.edong.com)上海公司,算是做的比较老牌的公司,PHP空间维护的不错,价格也还不错,而且空间开通都是由系统自动的,非人工开通,服务器出现问题反应也比较迅速,支持免费试用, PHP空间使用Redhat Linux企业版操作系统。适合中小型公司、个人Blog、内容管理等大多数用户使用。

● 虎翼网(www.51.net)北京公司,非常老牌的虚拟主机提供商,早期提供免费空间,后来取消了,技术实力雄厚,主机维护的不错,但是主机速度比较慢,而且价格偏贵,适合想稳定的企业用户, PHP空间使用他们修改过的FreeBSD的操作系统。适合喜欢稳定的个人用户企业用户使用。

● 伯汉网络(www.woowoo.com)上海公司,早期提供JSP的空间,现在主要是提供PHP的空间,空间大,价格非常便宜,速度比较快,全自动开通,支持免费试用7天。最强的是空间支持Telnet,能够直接登陆到服务器上进行操作,适合有一定Unix/Linux使用经验的用户,可定制性比较强, PHP空间使用FreeBSD操作系统。适合小型下载、论坛、中型企业网站使用。

● 金玄网(www.phphost.cn)浙江公司,一个专门提供PHP空间的提供商,能够支持预装某些PHP程序,服务器速度不错,手工开通服务,能够支持月付费,价格中等,而且能够自己跟管理员加装某些Apache功能,当然,要加钱滴。空间使用FreeBSD系统。该空间适合论坛、聊天室、个人Blog等用户使用。

● 我要安家(www.512j.com)江西公司,价格非常便宜,而且支持1M等小空间购买,能够自己选择是否购买数据库空间,空间手工开通,使用Fedora Linux操作系统。适合个人或者网站入门初学者使用。

PS: 以上空间我都是凭着良心说话,也不想替那个空间商做广告,只是按实话说。

 

6. [ PHP书籍 ]

● 《PHP程序设计》(http://www.china-pub.com/computers/common/info.asp?id=18754)由PHP创始人参与编写的PHP书籍,书中讲了大多数文章都没有讲到的基础内容,分析透彻详细,图片清晰,适合入门者学习和高手当作参考手册使用。

● 《PHP高级编程》(http://www.china-pub.com/computers/common/info.asp?id=1806)适合具有一定基础的提高学习,该书比较老,但是还是能够学习到很多有用的知识,而且现在市面上有的这本书都非常便宜,值得一看。

● 《PHP和MYSQL WEB开发 (原书第3版)》(http://www.china-pub.com/computers/common/info.asp?id=25384)目前国内最新的一本PHP书籍,号称是PHP+Mysql圣经级的读物,内容射猎比较广,同时也有PHP 5的内容,值得一看。

● 《PHP技术内幕 》(http://www.china-pub.com/computers/common/info.asp?id=8636)比较老的书,但是里面有很多有趣的知识点,每个知识点都是联系实际需求来描述的,有兴趣可以读一读。

Tags:, , , , , , , , , , , , , , , , , , , , .

QuickSkin PHP模板引擎简明教程

Quickskin其实很简单,基本上看它的example就能看懂。我写这篇东西的目的,只是想给自己的学习留下一个小小的脚印。

 

属性:

bool $reuse_code

默认值: false

是否将编译好的模板储存起来以便以后使用。如果被设置成false,那么QuickSkin在每次被使用的时候编译模板

string $template_dir

默认值: _skins/

模板读取目录。需要注意的是路径结尾的”/”是必需的!

string $extensions_dir

默认值: quickskin_extensions/

扩展类存放的路径。扩展类是可选的。如果不使用扩展类,那么没有必要修改这个设置。结尾的”/”是必须的

string $temp_dir

默认值: _skins_tmp/

编译之后的模板存放的目录。必须要保证PHP有写入该目录的权限。结尾的”/”是必须的

string $cache_dir

默认值: cache/

输出的缓存文件存放闻之。必须要保证PHP有写入该目录的权限。结尾的”/”是必须的

int $cache_lifetime

默认的输入缓存有效时间,单位是秒。

基本方法

1.void set()

用来设置QuickSkin一些属性,具体属性为第一部分的那些属性

2.void assign()

这个是QuickSkin中赋值的重要操作。主要用法有以下几种

  • $tpl->assign(’name’,$asdf); 这个操作将$asdf这个值赋给模板变量name,在模板中出现{name}的时候,以$asdf替换
  • $tpl->assign($array=array());这里$array是一个一维数组。这里没有模板变量名。其实这是一种比较省事的赋值办法。这里的赋值结果是模板变量名位数组的index,值就为index对应的content的内容。比如$array(“name”=>$name,”gender”=>$gender) 那么上面赋值就相当于$tpl->assign(“name”,$name);
    $tpl->assign(“gender”,$gender);
  • $tpl->assign(“first”,$array1=array());这个地方和上一个有些类似。但是first并非模板变量,而是命名空间。这种情况一般出现在两个数组index相同的情况下,为了区分。比如页面要显示两个人的资料,都有姓名,性别等内容。那么为了区分开,给每个数组一个命名空间,比如first和second。以上一例的数组为例,比如第一个人的姓名在模板中应该表示为{first.name},第二个就为{second.name}.主要的作用就是区分。
  • $tpl->assign(“list”,$list=array(array()));这里$list为一个二维数组,并且第一维的index为数字形式,比如$list[1].$list[2]这样子,二维字段保持一致。这种赋值方法是用在下面控制中,作为循环输出的(具体见控制结构

其实assign的用法不止这些,还有一些其他的,但是主要用法就这么四种,我在使用中也就用到这么四种。别的要么格式太怪,要么就是根本就不适用,所以没有写出,有兴趣可以看看QuickSkin官网的Example

PS:assign的用法可以混用的,具体还是要看需求而定。不过我在使用中都是把所有变量定义在一个多维数组中。只需要assign一次就可以完成。比如
$data['title']=“asdf”;
$data['list']=array(array(“name”=>”Lorry”,”gender”=>”male”),array(“name”=>”duckdull”,”gender”=>”female”);
$tpl->assign($data);

这样子一次性就完成了赋值,index就为模板变量名。比较好用

3.void addtpl()

将一个子模板加到主模版中。

个人觉得这个比较有用,一定程度上可以避免在模板中使用这种格式,使得所有页面问题都交给模板,模板不需要考虑逻辑问题。

举个简单的例子。VIP用户和非VIP用户的用户中心面板。除了侧边栏,其余的全部都相同。将侧边栏做成子模板,则可以在程序中判断加载拿一个子模板,达到VIP和非VIP侧边栏不同的效果。

4.void append()

追加模板变量的内容。模板变量可以为数组也可以为字符串。

举例$tpl->assign(“list”,array(“name”=>”Lorry”));

$tpl->append(“list”,array(“name”=>”duckdull”));

那么这个时候,上面两句话就相当于$tpl->assign(“list”,array(array(“name”=>”Lorry”),array(“name”=>”duckdull”)));

即,从一维数组append成二维数组

append也可以对字符串的变量进行操作,比如

$tpl->assign(“TITLE”,”Hello “);
$tpl->append(“TITLE”,”World”);
$tpl->append(“TITLE”,”!”);

上面就相当于$tpl->assign(“TITLE”,”HELLO World!”);

5.void use_cache()

设置quickskin使用缓存。当客户端在设置的缓存时间内进行页面请求时,直接读取缓存页面,而不是再次编译。需要设置cache_dir和cache_lifetime两个属性。

6.string result()

将模板生成的结果赋值给变量。

7.void output()

将模板生成结果输出到浏览器。

8.void debug()

我用了一下,没法使用,显示class.quickskinparse.php找不到。但是从changelog来看,应该是将class.quickskin.php和class.quickskinparse.php合并。所以个人怀疑这个所谓的项目改名就是将原先SmartTemplate改成了QuickSkin,其余的都保持没变。否则实在是不能解释为何出现class.quickskinparse.php丢失的情况。这个就是根据SmartTemplate的debug来写的的。Debug作用是将所有模板变量输出并且将生成的代码也输出。

控制结构(这个部分是写在模板中的)

打算分为三个部分说,有些单独说觉得很怪

1.IF模块

所有程序语言中都有if这个东西,条件判断的最基本的东西。QuickSkin中也有。语法是这样子


类似于HTML中的注释。这里需要注意的是,首先,IF,ELSE, ENDIF全部需要大写,而且要和前后的”-“有一个空格!这个是必须,否则就被当成注释了!

IF可以对模板变量有如下两个判断1.是否存在;2.是否等于(或者不等于某一个值)。分别举例如下判断id这个模板变量是否存在,也就是是否执行过$tpl->assign(“id”,$anything); 进行赋值过。而则是对name这个模板变量的值进行判断,看其是否等于Lorry。再比如就成了判断模板变量是不是不等于Lorry。PS:需要增加判断条件。如果一开始你用的是,那么就要写成注意,id要和后面的”-“有一个空格!!就没有什么好说的,和PHP、C之类的完全保持一致。

2.BEGIN…END模块

另一个控制模块登场!这个模块作用可是非常强大哦!!可以将一个二维数组循环输出。用上面说到的一个数组打个比方吧。

$tpl->assign(“list”,array(array(“name”=>”Lorry”,”gender”=>”male”),array(“name”=>”duckdull”,”gender”=>”female”)));

我们首先定义了一个模板变量,值为一个二维数组

然后再模板中我们怎么将他们书出来呢?

{name} {gender}

看看发生了什么?输出结果是:

Lorry male duckdull female

怎么样?我们只是定义了一个二维数组,用模板把它们完全打印出来了哦!是不是代码比较简洁呢?以前还需要写foreach,现在,不用了,代码简洁,维护起来也很方便哦!!

PS:BEGIN和END也要和前后的”-”有一个空格,并且END后面要加上BEGIN后面一样的模板变量哦!!

2.INCLUDE模块

INCLUDE模块的作用是将一个文件INCLUDE到当前的模板中,和PHP的include的作用基本相似。我总是觉得这个模块的功能完全可以由addtpl()代替了。不过直接INCLUDE代码效率也许会比addtpl要高,毕竟模板编译是需要时间的。个人倾向于addtpl。反正我觉得这就是SmartTemplate到QuickSkin的过度模块。个人认为而已,轻拍。

PS:INCLUDE也要和前后的”-”|有一个空格!

<!– BEGIN agent_list –>

   <!– END agent_list –>

<!– INCLUDE top.html –>

 <!– IF nullResult –><div style=”width:100%; text-align:left; font-size:12px;”>{nullResult}</div><!– ENDIF nullResult –>

Tags:, , , , , , , , , , , , .

盖茨下周退休 将全数捐出近五千亿身家

微软(Microsoft)创办人盖茨接受英国BBC电视节目《Newsnight》访问时表示,将把自己580亿美元(4,524亿港元)财产全数捐给名下慈善基金比尔及梅琳达盖茨基金会(Bill & Miranda Gates Foundation),一分一毫也不会留给自己子女。

据港媒报道,盖茨指希望自己对世界有“正面的贡献”,并表示这是他和妻子梅琳达的共同决定,他说:“我们决定不会把财产分给我们的子女。我们希望以最能够产生正面影响的方法回馈社会。”
盖茨表示,他不想把财产留给子女,因为“这样就如说了他最疼爱那一名子女。”

比尔退休了,大家有什么感想? 能捐出所有家产真不是一般人可以做到的…

原文: http://news.qq.com/a/20080622/000357.htm

Tags:, , , , , .

交朋友的11个技巧

交朋友有很多方法,我们有很多人也自觉不自觉地有很多交朋友的技巧,有些人甚至有交往朋友的原则。但是很多人是用朴素的方法与人交往,或者不自觉地运用或者不运用一些技巧。这里我和大家分享的11个小技巧,供大家社交参考。
——聊天聊点长远的事。我们一般与人在一起聊天的时候,除了鸡毛蒜皮,家长里短的事情之外,我们要让人觉得有一点远见,有在考虑未来的事情,自己是一个可以有长期交往价值的人。让人感到你是有长远考虑的人才增加人们与你建立鸡毛蒜皮以外关系的空间。
——交往一些眼前无用的人。有地位有资源的人谁都想去交往,但是在人家眼里你可能都不算一根葱。那些从还看不出谁长谁短的时代发展的同学关系却在后来成为了很长久的社会支撑。我们要把一部分精力放在帮助这些现在没有很多功用的人,从而为未来积累真正的价值。实际上那些只交往有用朋友的人看起来更象小人。 Click to continue »

Tags:, , , .

火狐3正式版17日发布 冲击吉尼斯下载纪录

火狐浏览器中国官方网站“谋智网络”(mozillaonline.com)今天确认,火狐3正式版将于6月17日发布,届时Mozilla将举行“火狐3下载日”活动,号召全球用户在当体几天下载,冲击软件下载吉尼斯世界纪录。   日前,Mozilla已在火狐全球相关社区传递这一信息,号召他们以亲自下载和举行区域性庆祝活动等形式,广泛参与这一活动。Mozilla希望,在正式版发布的那一天,火狐3将成为全球最热门、被下载次数最多的软件。   根据Mozilla提供的信息,火狐全球社区成员在2004年已超过1.75亿。今天,火狐支持超过45种语言版本,并且在230多个国家使用。   火狐去年正式落地中国,掌门人宫力也曾誓言要提高火狐在华份额。但与微软IE相比,火狐、Opera目前都仅占据很小一块市场。Mozilla方面希望,火狐3版的推出,有助于进一步缩小与微软IE之间的市场差距。

Tags:, , , , , , , .

运用pear的DB类和Pager类快速实现MySQL数据分页显示

假设有一个新闻标题的数据库表(其它字段忽略)
news.sql

 

CODE:CREATE TABLE news (
    ns_id INT NOT NULL AUTO_INCREMENT,
    ns_title VARCHAR(100) NOT NULL,
    PRIMARY KEY (ns_id),
);
我们来看一下如何运用pear的DB类和Pager类快速实现MySQL数据分页显示,代码如下:
首先我们建立一个配置文件config.php,在里面设置数据库DB类的DSN和Pager分页类的分页选项
config.php
CODE:<?php
$dsn = array( //设置数据库DSN
    ‘phptype’  => ‘mysql’, //数据库类型
    ‘username’ => ‘user’,  //用户名
    ‘password’ => ‘pass’,  //密码
    ‘hostspec’ => ‘localhost’, //主机
    ‘database’ => ‘test’, //数据库名
);

$pagerOption = array( //设置Pager分页选项
    ‘mode’                  => ‘Sliding’, //分页导航栏样式,此处为Sliding,还可用Jumping。
    ‘perPage’               => 10,        //每页显示记录数,此处为10条
    ‘delta’                 => 2,         //分页导航栏当前页码左右显示页码数,此处为2,表示在当前页码左右各显示2个页码,即总共显示5个页码,例如:3 4 5 6 7
    ‘prevImg’               => ‘上一页’,  //分页导航栏上一页连接名称
    ‘nextImg’               => ‘下一页’,  //分页导航栏下一页连接名称
    ‘curPageSpanPre’        => ‘<b>’,     //分页导航栏当前页html前修饰符,此处为[b],表示当前页码加粗显示
    ‘curPageSpanPost’       => ‘</b>’,    //分页导航栏当前页html后修饰符,此处为[/b],表示当前页码加粗显示
    ‘firstPageText’         => ‘第一页’,  //分页导航栏第一页连接名称
    ‘lastPageText’          => ‘最末页’,  //分页导航栏最末页连接名称
);
?>
接下来实现分页显示
pagination.php
CODE:<?php
require_once(’config.php’);
require_once(’DB.php’);
require_once(’Wrapper.php’); //Wrapper.php文件包含Pager类针对数据库类的一个封装,在附件中提供下载,也可以在pear的安装包里找到。

$db = DB::connect($dsn);
$sql = ‘SELECT ns_title FROM news’;

$pager = Pager_Wrapper_DB($db, $sql, $pagerOption, false, DB_FETCHMODE_OBJECT); //获取分页数据
foreach ($pager['data'] as $data) {
    print $ns_title = $data->ns_title; //显示新闻标题
    print ‘<br>’;
}
print $pager['links']); //显示分页导航栏
?>

Tags:, , , , , , , , , , , , , , , , , .