qq通信服务端是在myqq上二次开发,所以支持linux/windows双平台
主控程序采用php开发
主要的功能是:
查ip地址、查电话归属地、查天气预报、查pr值、在线翻译等都是些常用的功能
目前windows下正常,准备着手迁移至linux平台,还好机器人程序的主要库libcurl是跨平台的。
全部弄好后,加上远程服务器许可认证系统,然后准备卖程序咯,嘿嘿!
qq通信服务端是在myqq上二次开发,所以支持linux/windows双平台
主控程序采用php开发
主要的功能是:
查ip地址、查电话归属地、查天气预报、查pr值、在线翻译等都是些常用的功能
目前windows下正常,准备着手迁移至linux平台,还好机器人程序的主要库libcurl是跨平台的。
全部弄好后,加上远程服务器许可认证系统,然后准备卖程序咯,嘿嘿!
今天在公交车上,由于拥挤一男一女发生了碰撞。
时髦女郎回头飞眼道:“你有病啊?”
男子觉得莫名其妙回道:“你有药吗?”
车上人窃笑!
女子觉得生气回道:“你有精神病啊?”
男子冷面对道:“你能治啊?”
全车人爆笑!
公交司机停车,趴在方向盘上大笑!
这是珠江路上上班的朋友遇见的
公交车上超挤,有一女人站在门口,
从车后面挤过来一个GG要下车,
跟那女的说了一句“让一下,下车”,那个女滴木有动。
GG挤过去时就踩到她了。
结果那女人好厉害的,不停的骂“神经病啊你!神经病啊你!~~”,还超大声,搞得全车都看呀。
GG一直木有说话,下车时忍不了了,回头对那女人说,“复读机呀你!”
全车人暴笑~!
后边有几个搞笑的小孩,不停的伴演刚才的一幕,
甲说“你神经病呀你!。。。。。乙说“你复读机呀你”。。。。。。 新浪乐居论坛:
全车人暴笑~!
后来,有个小MM也要下车,挤过去怯怯滴说“偶~偶~偶想下去,偶不是神经病~!”
全车人再次暴笑~!
那个女人木有说话,可是从边上飘来一句话“你是不是没电了”
全车人暴笑不止~!
mongodb是nosql的典型了,采用是json类似的存储格式
mongodb官网下载windows平台下的服务端: http://www.mongodb.org/downloads
mongodb的php驱动:http://github.com/mongodb/mongo-php-driver/downloads
mongodb下载后,解压到D盘,最终地址是:D:\mongodb\bin
php驱动 php_mongo.dll 解压至php的ext文件夹下,然后修改php.ini,添加 extension=php_mongo.dll 新建数据库存放文件夹 D:\mongodb\db
mongodb的启动:
在命令行输入 D:\mongodb\bin\mo\mongod --dbpath D:\mongodb\db
到这里,mongodb已启动,打开http://127.0.0.1:28017/ 可以看到mongodb运行情况
为了方便以后每次不必启动mongod,可以把mongod注册成windows服务
mongodb php使用方法:
3 用PHP操作Mongondb
简单列子 //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略
$m = new Mongo();
// 选择comedy数据库,如果以前没该数据库会自动创建,也可以用
$db = $m->comedy;
//选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用
$collection = $db->collection;
$db->selectCollection("collection");
/* ----- 添加一个元素 -----*/
$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($obj); //将$obj 添加到$collection 集合中
/* ----- 添加另一个元素 -----*/
$obj = array(
"title" => "XKCD",
"online" => true
);
$collection->insert($obj);
$cursor = $collection->find();
//遍历所有集合中的文档
foreach ($cursor as $obj) {
echo $obj["title"] . "\n";
}
//断开MongoDB连接
$m->close();
3.2 常用函数
$query = array( "i" => 71 ); $cursor = $collection->find( $query ); // 在$collectio集合中查找满足$query的文档 while( $cursor->hasNext() ) { var_dump( $cursor->getNext() ); } $collection -> findOne(); //返回$collection集合中第一个文档 $collection -> count(); //返回$collection集合中文档的数量 $coll->ensureIndex( array( "i" => 1 ) ); // 为i “这一列”加索引 降序排列 $coll->ensureIndex( array( "i" => -1, "j" => 1 ) ); // 为i “这一列”加索引 降序排列 j升序
3.3 查询时,每个Object插入时都会自动生成一个独特的_id,它相当于RDBMS中的主键,用于查询时非常方便
如:
<?php $person = array("name" => "joe"); $people->insert($person); $joe = $people->findOne(array("_id" => $person['_id'])); ?>
昨天写了个php程序,给mysql插入随机的文章数据,仿照真实文章,中文数据,主要是测试在100w级数量时查询上的优化及测试mysql内置的全文检索与其它类似全文检索引擎的差距等。总数据量:article 101w左右 user表10w左右,总计占用硬盘2G左右
今天开始测试在海量数据查询时的优化手段
最后附上一截图
第一个是二分法查找,只能对有顺序的数组进行查找,速度应该是所有查找算法里最快的,
原理就是不停的做对折,以查找到目标!
第二个是冒泡排序,比较有名了,大学里c语言课必有的一个算法
第三个是从字符串中查找子串,也比较常用,以前用它做词频排序。
<?php
//二分法 $arr 数组,$k 要查找的值,$m 最小,$b最大
function dichotomy($arr,$k,$m=0,$b=0)
{
$total=count($arr);
if($total!=0 && $b==0) $b=$total;
if($m<=$b){
$avg=intval(($m+$b)/2);
if($arr[$avg]==$k) return $avg;
elseif($k<$arr[$avg]) return dichotomy($arr,$k,$m,$avg-1);
else return dichotomy($arr,$k,$avg+1,$b);
}
return false;
}
echo "<hr>二分法查找<br>";
$arr=array(0,1,2,3,4,5,6,7,8,9,10);
var_dump(dichotomy($arr,1));
//冒泡排序
function bubblesort($arr)
{
$total=count($arr);
for($i=0;$i<$total-1;$i++){
for($l=$i+1;$l<$total;$l++){
if($arr[$i]>$arr[$l]){
list($arr[$l],$arr[$i])=array($arr[$i],$arr[$l]);
}
}
}
return $arr;
}
echo "<hr>冒泡排序<br>";
$arr=array(1,100,23,434,22,12,3,5);
var_dump(bubblesort($arr));
//从字符串中搜索子串 $text 字符串,$str 要搜索的子串
function search($text,$str){
$strLen=strlen($str);
$textLen=strlen($text);
for($i=0;$i<$textLen-$strLen;$i++){
if(substr($text,$i,$strLen)==$str) return $i;
}
return false;
}
echo "<hr>字符串中搜索子串<br>";
$text="pdsofuapdoi3409729fhydish";
var_dump(search($text,"7"));
?>