分页: 107/120 第一页 上页 102 103 104 105 106 107 108 109 110 111 下页 最后页 [ 显示模式: 摘要 | 列表 ]
Feb 5

默认情况下,PHP会话(session)是通过文件来保存的。这样做有以下几个缺点:

  1. 会话文件一般都很小,但文件数却很多,在文件系统中保存许多这样的小文件非常浪费空间,且效率不高。
  2. 分布式的站点难以利用会话文件来共享会话。
  3. 会话文件方式不利于统计在线用户的会话信息。

为解决以上问题,我们可以考虑用数据库来保存会话信息。

对于 PHP 开发来说,保存会话用 MySQL 是一个非常不错的选择。MySQL 提供一种建立在内存中的表类型 Heap,如果每条会话数据量很小的话,可以考虑用这种类型的表来进一步优化性能。但是 Heap 类型的表有许多限制,例如它不支持 text 类型的字段,因此如果在无法预测会话数据记录长度的情况下,选择 MyISAM 是比较合适的,这种类型的表没有事物处理开销,对于基于磁盘的表可以得到最优性能。

下面是 sessions 表的结构:

  1. DROP TABLE IF EXISTS `sessions`;
  2. CREATE TABLE `sessions` (
  3.   `session_id` varchar(32) NOT NULL default '',
  4.   `user_id` int(10) unsigned NOT NULL default '0',
  5.   `data_value` text NOT NULL,
  6.   `last_visit` timestamp(14) NOT NULL,
  7.   PRIMARY KEY (`session_id`),
  8.   KEY `user_id` (`user_id`)
  9. ) TYPE=MyISAM;

PHP 支持用户会话模块,可以通过 session_set_save_handler 来设置自定义的会话处理函数。因为默认的处理模块是 files,因此要在用 session_set_save_handler 设置会话处理函数之前,先用 session_module_name(’user’) 来告诉 PHP 使用用户会话模块, 而session_set_save_handler 必须要在 session_start 之前执行。

用户会话数据在会话处理函数中都是序列化之后的,要取出其中的某个会话变量,可以对其进行反序列化,默认是 php 序列化方式,可以用 session::unserialize 函数来反序列化。

下面的代码定义了一个用 MySQL 来处理 PHP 会话的类,其中所使用的 class_mysql.php 请参见 《超级简单但超级实用的 PHP 的 mysql 类》

  1. <?php
  2. /**
  3. * @author 马秉尧
  4. * @copyright (C) 2005 CoolCode.CN
  5. */
  6. require_once("class_mysql.php");
  7. class session {
  8.     var $db;
  9.     function session(&$db) {
  10.         $this->db = &$db;
  11.         session_module_name('user');
  12.         session_set_save_handler(
  13.             array(&$this, 'open'),
  14.             array(&$this, 'close'),
  15.             array(&$this, 'read'),
  16.             array(&$this, 'write'),
  17.             array(&$this, 'destroy'),
  18.             array(&$this, 'gc')
  19.         );
  20.         session_start();
  21.     }
  22.     function unserialize($data_value) {
  23.         $vars = preg_split(
  24.             '/([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*)|/',
  25.             $data_value, -1, PREG_SPLIT_NO_EMPTY |               
  26.             PREG_SPLIT_DELIM_CAPTURE
  27.         );
  28.         for ($i = 0; $vars[$i]; $i++) {
  29.             $result[$vars[$i++]] = unserialize($vars[$i]);   
  30.         }
  31.         return $result;
  32.     }
  33.     function open($path, $name) {
  34.         return true;
  35.     }
  36.     function close() {
  37.         return true;
  38.     }
  39.     function read($session_id) {
  40.         $session_id = $this->db->escape_string($session_id);
  41.         if ($row = $this->db->query("select * from `sessions` where `session_id` = '$session_id' limit 1")) {
  42.             return $row['data_value'];
  43.         }
  44.         else {
  45.             $this->db->query("insert into `sessions` set `session_id` = '$session_id'");
  46.             return "";
  47.         }
  48.     }
  49.     function write($session_id, $data_value) {
  50.         $data = $this->unserialize($data_value);
  51.         $session_id = $this->db->escape_string($session_id);
  52.         $data_value = $this->db->escape_string($data_value);
  53.         $this->db->query("update `sessions` set " 
  54.                                 . "`user_id` = '{$data['user_id']}', "
  55.                                 . "`data_value` = '$data_value', "
  56.                                 . "`last_visit` = null "
  57.                                 . "where `session_id` = '$session_id'");
  58.         return true;
  59.     }
  60.     function destroy($session_id) {
  61.         $session_id = $this->db->escape_string($session_id);
  62.         $this->db->query("delete from `sessions` where `session_id` = '$session_id'");
  63.         return true;
  64.     }
  65.     function gc($lifetime) {
  66.         $this->db->query("delete from `sessions` where unix_timestamp(now()) - unix_timestamp(`last_visit`) > $lifetime");
  67.         return true;
  68.     }
  69.     // get sessions by user_id
  70.     function get($user_id) {
  71.         $user_id = $this->db->escape_string($user_id);
  72.         return $this->db->query("select * from `sessions` where `user_id` = '$user_id'");
  73.     }
  74.     // get sessions list
  75.     function lists($page, $rows) {
  76.         if ($page == 0) {
  77.             return $this->db->query("select * from `sessions` order by `user_id`");
  78.         }
  79.         else {
  80.             $start = ($page - 1) * $rows;
  81.             return $this->db->query("select * from `sessions` order by `user_id` limit $start, $rows");
  82.         }
  83.     }
  84. }
  85. ?>

这个类的使用很简单,在原来使用 session_start 的地方,替换成 $session = new session($db) 就可以了。$db 表示 sessions 表所在的数据库。

另外可以用 get 方法来获取某个用户的所有会话信息,通过 lists 方法来得到所有用户会话列表。这样就可以方便的管理用户会话了。

Feb 5
  PHP以其易用性得到迅速的推广,但易用并不是说就能用好它,实际上许多程序员用它很容易的立一个个WEB应用系统,但又有多少人仔细的考虑过他们的代码,是否容易维护、是否足够健壮、否效率足够高、是否足够安全,当PHP用于建立大型网站时这些就成为很关键的因素。下面我们从较轻微的问题开始讨论,直至一些致命的错误。共分三部分。
 第一部分、较轻微的错误
 
 一、Printf(),
   该函数主要用来格式化显示数据。当你要改变某个数据的显示格式时才使用。
 例如以不同的精度来显示PI(3.1415926)的值。
    /*
  * The three faces of Π
  */
 
  printf ("Pi is: %.2fn
n", M_PI);
  printf ("Pi is also: %.3fn
n", M_PI);
  printf ("Pi is also: %.4fn
n", M_PI);
 ?>
 
   但许多程序员仅仅为显示一些变量值和函数返回值使用该函数。因为Printf()在显示数据前要先格式化该数据以速度较慢,因此,仅为了显示数据时应用print和echo,以提高速度。
 
 二、语意检查
   PHP是一种弱类型语言,也就是说在使用一个变量前不用定义,这样给编程带来了很大的方便和灵活,但你自己必须知道该变量到底应该是哪种类型,因为该变量在运行时仍实际对应着某一种类型(各种类型之间可以自由互相转换),没有类型的变量是不存在的。有可能PHP并不能检查出你的语意错误,但由于变量类型的变化,会导致一些潜在的问题的发生。另外一个值得注意的问题是变量的范围,它也可能会导致一些潜在的问题的发生。
 在PHP中有以下几种基本变量:
 Boolean, resource, integer, double, string, array and object。
 
 三、临时变量的使用
   临时变量的滥用会导致程序运行效率的降低。何时使用临时变量可基于以下两点考虑:
 1、该变量是否至少使用两次。
 2、该变量的使用是否会显著提高程序的可读性。
 如果一条也不满足,则省略该变量的使用。例如:
    $tmp = date ("F d, h:i a"); /* ie January 3, 2:30 pm */
  print $tmp;
 ?>
 就应该改成:
    print date ("F d, h:i a");
 ?>
 
 又如:
   
 // string reverse_characters(string str)
 // Reverse all of the characters in a string.
 function reverse_characters ($str)
 {
  return implode ("", array_reverse (preg_split("//", $str)));
 }
 
 ?>
 的可读性不强,可改成:
   
 // string reverse_characters(string str)
 // Reverse all of the characters in a string.
 function reverse_characters ($str)
 {
  $characters = preg_split ("//", $str);
  $characters = array_reverse ($characters);
 
  return implode ("", $characters);
 }
 
 ?>
 
 四、客户端和服务器端代码的分离
   客户端和服务器端代码的在PHP程序中实际上就是HTML代码和PHP语言代码,很多人把HTML和PHP语句混合在一个文件里,使得这文件很大,这种风格对程序的维护和再开发很不利,不适合大型站点的开发。一般有两种方法把HTML和PHP语句分开:
 1、编写专用API,例如:
 
 index.php ? The Client side
 
 
 
  <?php print_header (); ?>
 
 
 


 
 
 
 
 
 

 
 

 
 

 
 
 
 
 site.lib ? The server side code
 
 
   
 $dbh = mysql_connect ("localhost", "sh", "pass")
 or die (sprintf ("Cannot connect to MySQL [%s]: %s",
 mysql_errno (), mysql_error ()));
 @mysql_select_db ("MainSite")
 or die (sprintf ("Cannot select database [%s]: %s",
 mysql_errno (), mysql_error ()));
 
 $sth = @mysql_query ("SELECT * FROM site", $dbh)
 or die (sprintf ("Cannot execute query [%s]: %s",
 mysql_errno (), mysql_error ()));
 
 $site_info = mysql_fetch_object ($sth);
 
 function print_header ()
 {
  global $site_info;
  print $site_info->header;
 }
 
 function print_body ()
 {
  global $site_info;
  print nl2br ($site_info->body);
 }
 
 function print_links ()
 {
  global $site_info;
 
  $links = explode ("n", $site_info->links);
  $names = explode ("n", $site_info->link_names);
 
 for ($i = 0; $i < count ($links); $i++)
 {
  print "ttt
  $names[$i]
  n
n";
 }
 }
 ?>
 
 这种方法使得程序看起来比较简洁,而且执行速度也较快。
 
 2、使用模板的方法
 这种方法使得程序看起来更简洁,同样实现上面的功能,可用以下代码:
 
 
 %%PAGE_TITLE%%
 
 
 

%%PAGE_TITLE%%


 
 
 
 
 
 
%%PAGE_LINKS%% %%PAGE_CONTENT%%

 
 
 
   用占位符代替要动态生成的内容,然后用一解析程序分析该模板文件,把占位符用际的内容替换。种方法使得即使不会使用PHP的页面制作人员也能修改模板文件。这种方法的缺点是执行效率不高,因为要解释模板文件。同时实现起来也比较复杂。
 
 注: www.thewebmasters.net的 FastTemplate class可方便的实现以上功能。
 
 五、不要用过时的函数
 作为一种自由软件,PHP发展很快,其中的很多函数都已过时,例如:
 
 while (1):
 print "5";
 if ($idx++ == 5):
 break;
 endif;
 endwhile;
 
   虽然还能用但效率肯定不高,而且可能在以后的版本中会禁用,导致程序不能运行。因此要经常对照最新PHP手册检查那些函数已过时及时修正
Feb 5
为了能准确的播放asx文件,我们必须用js对mediaplayer进行控制。


<?


//asx的格式:
function channelprogramlist($filename){
$str="";
$str.="<ASX version="3.0">rn";
$str.="t<ENTRY>rn";
$str.="tt<AUTHOR>".$filename;   //节目名
$str.="</AUTHOR>rn";
  $filename=urlencode($filename); //把节目名转换
  $filepath="http://".192.168.0.1"/".$filename;  //192.168.0.1是服务器的ip
  $str.= "tt<REF HREF="$filepath" />rn";
  $str.= "t</ENTRY>rn";
 }
$str.= "</ASX>";
return $str;
}


//写asx文件
function writeFile($str){        
 $file="mms.asx";
 $fp = fopen($file,"w+");
 fwrite($fp,$str);
 fclose($fp);
 return  $file;
}


//控制mediaplayer每次从新读取文件
function PlayChannel($urlstr){
echo "<script language="javascript">n";
echo "function change(){n";
echo "t"."document.mediaPlayer.file=".$urlstr.";n";
echo "}n";
echo "</script>n";
}


?>


<html>
<head>
<title>播放器</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<?php
$filename="神话";
PlayChannel(writeFile(channelprogramlist($filename)));
?>
</head>
<body leftmargin="0" topmargin="0" onLoad="change()" bgcolor="#000000">
<object id="mediaPlayer" width="554" height="380" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" standby="Loading Microsoft Media Player components..." type="application/x-oleobject">
<PARAM NAME="animationatStart" VALUE="true">
<PARAM NAME="transparentatStart" VALUE="true">
<PARAM NAME="autoStart" VALUE="true">
<PARAM NAME="CanSeek" VALUE="FALSE">
<PARAM NAME="showControls" VALUE="FALSE">
<param name="FileName" value="mms.asx">
<embed type="application/x-mplayerO" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" autostart="1" width="500" height="400">
</embed>
</object>
</body>
</html>

Feb 5
最近做完了一个项目,感慨颇深。根据做项目的经验,现初步拟了一个项目开发过程及成员组成。还请各位多多指教。

项目过程

1、项目启动
1)、项目组成立(公司成员、客户成员)
2)、制定项目预期目标
3)、制定项目计划周期
4)、建立好项目组成员沟通机制

2、需求调研
1)、创建调研计划、协调调研时间
2)、收集客户资料,获取客户需求
 所有的资料都需要保留一份,资料中存疑的需要及时询问
3)、编写需求文档
 重点描述出客户的业务流程和性能要求。
 采用Word、Excel、Rose等形式。
4)、需求变更记录
5)、确定开发环境和运行环境
6)、扩展性要求
7)、与旧系统的接驳要求。
8)、估算出项目工作量

本阶段需要一套需求管理系统来进行需求的管理。

 本阶段的需求文档也是用户测试的依据。

3、系统设计/详细设计
一个系统可以分为基础平台和应用模块两部分。
1)、选择基础平台,无论是采用第三方平台还是自行开发平台,都需要深入了解,查看是否符合要求。
2)、应用模块设计(针对业务流程)
3)、中间件的采用或自行开发,需要深入了解。
4)、用户界面的设计
 如果用户界面设计完毕并确认,即可初步写出用户使用手册、管理员使用手册。
5)、变更记录

本阶段的系统设计是集成测试的依据。

4、程序开发
创建开发任务计划表、开发计划日程表
1)、优先编写测试用例
2)、按照编码规范编写代码
3)、按照文档注释规范注释
以上形成开发文档。

 本阶段需要一套版本管理系统。

 本阶段的测试用例也是单元测试的依据。
 如果能做到,最好每日构建。

5、测试
 本阶段需要一套Bug管理系统,形成需求、设计、开发、测试互动。

1)、编写测试计划和测试方案
2)、功能测试
 单元测试、集成测试
3)、性能测试
 集成测试、压力测试

如果能做到,最好能进行自动化测试。
如果能做到,做分析统计工作。

最后形成测试报告。

6、试用、培训、维护
本阶段需要解决:
1)、解决异地修改和公司修改的同步问题。
2)、用户测试中的Bug修改问题,按照级别分为
 a)、程序Bug
 b)、设计变更
 c)、需求变更
尽量按照a b c的顺序来进行修改,尽量避免b、c级的修改。

最后形成安装手册、维护记录。

项目成员组成

根据以上过程,一个项目组中,需要:
1、需求工程师,其要求
善于与客户沟通,能快速了解客户的需求,对客户所在的行业比较熟悉。
善于学习新知识。
熟悉Word、Excel、Rose等工具的使用。
熟悉开发语言和开发框架
熟悉已积累的产品的功能、性能等。

2、系统分析师/设计师,其要求
精通开发语言和开发框架,部分需要精通数据库
精通已积累的产品的功能、性能等
深入了解客户行业特点
能根据客户的要求分析出其实质
能做出优秀的设计
熟悉Word、Excel、Rose等工具的使用

3、开发工程师,其要求
熟悉开发语言,熟悉开发要求和注释规范,部分需要熟悉数据库。
熟悉单元测试。
能根据设计做出良好的编码,保证功能和性能。
部分需要有一定的设计要求,因为涉及到将来的维护。

4、测试工程师,其要求
熟悉测试工作,能按照测试计划进行测试。
熟悉开发语言,能协助开发工程师找错。
能独立完成黑、白盒测试。
如果是高级测试人员,还要能够对系统能深入进行分析并能制定出优秀的测试方案。

5、管理人员
一般由以上人员兼任,主要有
项目经理:负责整个项目
开发经理:负责系统设计、开发工作
测试经理:负责测试工作

6、其他人员
一些项目涉及到其他人员,如页面设计人员、页面制作人员。
部分大的项目,还有专门的维护人员。

由于目前国内很多公司并没有严格这么区分,如果项目小的话,可以一人兼任多项职位
Jan 25
      【BBS】即网上论坛。通常有特定主题、管理员(版主,也叫斑竹、板猪)。由网友自由上帖发表文章或言论,即帖子。其实许多论坛同时也是网友们交换信息的重要手段,比如XX游戏论坛。

  【回帖】看了别人的帖子,加复一下,表示自己的意见,这叫回帖,也叫跟帖。

  【置顶】一个帖子,回复的人或者跟帖的人多了,就成了热门帖。一般论坛,会把这样的帖子放到所有帖子的最前面,这叫置顶。如果再编入论坛永久保留的精华区,对发帖的人是一种无上的光荣。

  【顶】顶,也叫推,回帖的一种。不过所谓顶,就是在回帖时,不表示什么具体的意见,仅仅表示支持一下,这是看帖的基本美德之一。

  【砖·水】一个论坛即要有砖———精彩的帖子,吸引网虫浏览、议论;也要有水———没什么内容的帖子,或同一文章在同一版或不同版重复发表三次以上者。然而灌水,有实际提高论坛人气的显著作用,只要灌得不要太过分而影响了他人,一般都是被允许甚至鼓励的。有的论坛甚至设立专门的灌水区,供灌水爱好者发泄。

  【潜水】论坛有了水,自然也就可以潜水,潜水特指论坛里那些只看不回帖的人。因为这种行为,对论坛人气提升极为不利,所以这也是论坛管理者们和积极地发帖者们最恨的。就算你看了帖子,没什么想法,也可以顶一下嘛,又不掉块肉的喽!如果是长期不发言的潜水员,突然发言,则称为浮上来。

  【楼】有砖才能盖楼,一个帖子如果吸引人,就会有很多人回帖。第一个帖子和回帖,从上到下以时间顺序排列,下面的称上面的叫楼上,或者按次序称之为第N楼的。回帖的人有时也会相互讨论,楼上楼下打成一片,而这个一系列帖子的发起者(原帖)就成了楼主。

  【删帖】这是论坛管理员或者斑竹的特权,它可以根据论坛的基本规则,决定是否删除某人的帖子,一般是这些帖子违反了论坛不成文的规矩。然而删帖行为,经常会引发论坛管理者和发帖人之间激烈的矛盾。矛盾激化,有的高层斑竹甚至会封掉某些人的发帖权。

  【ID·头衔】论坛一般都是自由开放的。一般的浏览者都称为游客,许多论坛游客是不能发言的,要发言就必须成为正式成员,即注册ID,它是你在论坛的用户名。而一个优秀的论坛,还允许固定成员使用代表自己ID的可爱头像和个性签名。所谓签名,一般都是超好玩的Gif动画。至于头衔,一般是根据你在论坛的发帖或者回帖数量,自动产生的。

  【天外飞砖·拍砖】这是一种特别的帖子,其目的是中伤某人的网络名誉。所以在论坛成名成家者,要特别小心喔!至于拍砖,是指回帖时持批评态度。

  【水桶·水鬼·水仙·水王·水怪·水母】这些都是指灌水狂人,其中水母特指女性。

  网络通用辞典:叫叫版

  ◎我不叫我,叫———偶

  ◎年轻人不叫年轻人,叫———小P孩

  ◎蟑螂不叫蟑螂,叫———小强(来自于周星驰的《唐伯虎点秋香》)

  ◎什么不叫什么,叫———虾米

  ◎不要不叫不要,叫———表

  ◎喜欢不叫喜欢,叫———稀饭

  ◎这样子不叫这样子,叫———酱紫

  ◎好不叫好,叫———强

  ◎强不叫强,叫———弓虽

  ◎被无数蚊子咬了不叫被无数蚊子咬了,叫———~~~新蚊连啵~~~

  ◎追女孩不叫追女孩,叫———泡MM

  ◎看MM不叫看MM,叫———鉴定

  ◎兴奋不叫兴奋,叫———HIGH

  ◎吃喝不叫吃喝,叫———腐败

  ◎请人吃饭不叫请客,叫———反腐败

  ◎散步不叫散步,叫———溜溜

  ◎爸不叫爸,叫———DADY

  ◎妈妈不叫妈妈,叫———MAMY

偶:我
kick your ass:踢你的PP
FT,分特:faint的简称,晕倒。
统一:刷墙,扫楼的同义词。也就是整个版面都是你的回复,一种被谴责的行为。
XXXX的说:一种动词后置,比如吃饭的说
XXXXing:XXXX进行中,正在XXXX。比如上网ing
MM:妹妹
GG:哥哥
DD:弟弟
JJ:姐姐 鸡鸡
PLMM:漂亮美眉,浮云
XDJM:兄弟姐妹
PFPF:佩服佩服
PP:照片,但如果是说打PP,那就是kick your ass的意思了
BT:变态。和浮云的其他版块相比,水版是个BT出没的地方 扁他(她、它)
SL:色狼。浮云的特点是,狼多也MM多
BL:玻璃,不是指一种易碎品,而是同性恋
BC:白痴
YW:阳痿,不举
BD:笨蛋
RY:人妖
LM:流氓
YY:意淫
PG:屁股
GF:girl friend,女友
BF:boy friend,男友
kao,*,拷:粗口,慎用
MD:妈的,粗口,特别慎用!
***:, *** ,粗口,特别慎用!
TNND:他XXXX的,粗口,特别慎用!
JJWW:唧唧歪歪,指人说话的样子
S***:神经病
PMP:拍马屁
MPJ:马屁精
kick:扁
slap:打耳光
KH:葵花,就是练葵花宝典的高手,浮云某高手已练至化境,人皆不呼其名,而直呼KH。
KHBD:葵花宝典
PXJF:辟邪剑法,源于KHBD,KH专用的剑法
SM:Sadism & Masochism的缩写,性虐待或指(被)虐待狂
JS:*商
SP:support,支持
的微:一种语气助词,KH专用
呼呼,猪猪:睡觉
稀饭:喜欢
果酱:过奖
BXCM:冰雪聪明
LOL:Laugh Out Loud,大笑
KFC:Kxxx & Fxxx & Cxx,要是和某人有仇,就KFC他吧
PK:player kill,砍人,攻击,也可解释为先批后K
btw:by the way,顺便说一句
PS:两种意思,btw或者photoshop(一种电脑修图软件)
CU:see you,再见
BB:宝贝,情人,孩子,byebye,看具体使用
走召弓虽:超强
满清:满清十大酷刑,老祖宗的玩艺
咔嚓:砍了,yan了
酱紫:这样
饭饭:吃饭
片片:照片
斑竹,板猪:版主,论坛版块的管理人员,把水版比作个小店,他们就是店小二。
水桶,水鬼,水仙,水王,水母:指灌水狂人,水母特制女性
水手:浮云水版的芸芸众生
潜水员:就是那些喜欢看别人灌水自己不灌水的家伙
恐龙:长得难看的MM
抓狂:受不了刺激而行为失常
THX,3X:thanks,谢谢
sigh:叹息
cool:酷
gay:同性恋,BL
fag:同性恋,BL
pm:论坛的私信
zip it:闭嘴
leecher:吸血鬼,指只知道索取不懂得分享回报的家伙,被严重鄙视的人
DL:download,下载
PUB:网路上扫描到的ftp,可以临时起上传下载功能,也指把文件传到pubftp上共享的行为。
BRB:Be right back,马上回来
TTYL:Talk to you later,再见,下次回头再谈
BBL:be back later 过会回来
kick your ass:打你屁屁
R P W T:人品问题
PPL:people,人们
PLZ,PLS:please,请
bull *** , *** :胡说,废话
sorry ass:可怜的家伙,鄙视的意思
so so:一般
cutie:甜心
d*amn:*,他XX的
包子:某人长得难看或者笨就说他包子
粉:很,非常
菜鸟,小虾,初哥:就是初级水平的新人
老鸟,大虾:高手
木油:没有
蛋白质:BD+BC+S***
爱老虎油:I love U,我爱你
倒:晕倒,厥倒
表:不要,比如表太好,不要太好的意思。
咣当:晕倒发出的声音
9494:就是就是
猪娃:CCF传过来的口语,好孩子
爆头:游戏中引来的词汇,把某人打得脑袋开花
4242:是啊是啊
7456:气死我了
748:**
886,88:再见
847:别生气
987:就不去,就不去
55555:哭
XXX:儿童不宜的东西
blah-blah:反复说
厚厚,吼吼,咔咔,kaka,嘻嘻,xixi:语气助词
猪头党,锄头党,仙族一派,神族,魔族,女子别动队。。:浮云水版的帮派组织
浮通社:浮云水版的新闻机构
五朵金花:翠花,如花,木花,黑花,菜花,水版的5个BT男
小琳飞刀:某MM版主的独门暗器,江湖第一快刀
天外飞砖:某**两口子发明的一种极凶猛的暗器,据说让人生不如死
RPWT:人品問題
---------------------------------
稀飯 ______喜歡

米油_______沒有

索_________是

介锅________這個

D_________的

8___________不
分页: 107/120 第一页 上页 102 103 104 105 106 107 108 109 110 111 下页 最后页 [ 显示模式: 摘要 | 列表 ]