getBoundsZoomLevel google map api v3

在google map API  3 下 使用getBoundsZoomLevel 会找不到方法,这个方法是version 2里的,在新版本里,可以用

map.fitBounds(bounds);来代替使用。尤其是使用geocoder.geocode() 方法时,返回的results[0].geometry.viewport 就是我们要的bounds.

代码示例:

map.geocoder.geocode({ ‘address': address }, function(results, status){ if (status == google.maps.GeocoderStatus.OK) { map.gmap.fitBounds( results[0].geometry.viewport); } else { alert(“Geocode was not successful for the following reason: ” + status); } });

PHP中的Session机制

做web开发,必然会涉及到Session,这是由于http协议本身是无状态的(每次响应都是独立的,彼此间没有联系),所以如果需要在页面跳转间保持某个用户的身份,就要在每次连接时告诉服务器端你的唯一标示号,即Session ID。这样,服务器端便可通过Session ID得到所需的数据。

在PHP中,Session是通过$_SESSION这个全局变量来set/get的,不过在使用之前要先初始化。初始化是通过 session_start函数(如果php.ini中将session.auto_start设为1,则会自动初始化),之后PHP会为request 自动生成一个唯一随机数作为Session ID,生成算法默认提供了MD5 (128 bits) 和SHA-1 (160 bits),由php.ini中session.hash_function设定。其实也可以自定义,比如在随机数基础上将来访者的IP地址也加入到算法中,像CodeIgniter1.7.2中代码: Continue reading »PHP中的Session机制

为何使用非关系数据库

随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:

1、High performance – 对数据库高并发读写的需求
web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的 BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。

2、Huge Storage – 对海量数据的高效率存储和访问的需求
类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。 Continue reading »为何使用非关系数据库

php sql级别优化

1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20 Continue reading »php sql级别优化

MongoDB与PHP

Windows PHP的MongoDB拓展的安装

windows下用php操作MongoDB需要安装驱动,所需dll可以到http://github.com/mongodb/mongo-php-driver/downloads 下载。比如我的php版本是5.2.6,我下载的就是mongo-1.0.9-php5.2vc6ts.zip。

把php_mongo.dll放到你php的ext目录,然后php.ini中加入

extension=php_mongo.dll

重启web服务器就可以了。是否成功可以通过查看phpinfo() 函数的结果中是否加载了MongoDB模块儿来判定。

与mysql对应的php下数据库管理工具phpmyadmin类似,MongoDB下的php数据库管理工具为phpmoadmin可以到http://www.phpmoadmin.com/ 这里下载,放到你的web路径下就ok。

现在你可以开始自己的php与MongoDB的开发之旅了。

 

Linux PHP的MongoDB拓展的安装 # wget http://pecl.php.net/get/mongo-1.2.6.tgz # tar zxvf mongo-1.2.6.tgz # cd mongo-1.2.6 # /usr/local/php/bin/phpize # ./configure –enable-mongo=share –with-php-config=/usr/local/php/bin/php-config # make && make installl

将生成的拓展mongo.so文件添加到php.ini中,重启php-fpm,然后查看下phpinfo()

请编辑php.ini文件。添加如下一行:

PHP Code复制内容到剪贴板 extension=mongo.so

然后用php输出:phpinfo,就可以看到mongo的信息了。。这样就说明你安装成功的了!