备忘日志【二】

来源:互联网 发布:电脑网络机柜 编辑:程序博客网 时间:2024/06/06 06:54
1、[2012-03-18] trim函数不单可以去空格,也可以去掉指定字符串。

trim

(PHP 4, PHP 5)

trim — Strip whitespace (or other characters) from the beginning and end of a string

string trim ( string $str [, string $charlist ] )

<?php

$str="this is ok@@@";

$str=rtrim($srt,"@@@");//去掉右边的@@@;

?>


2、[2012-03-18] 缓存机制(discuz)

缓存机制简单的说就是将一些重复操作的结果集保存下来,在收到同样的操作时直接从缓存的结果集中取出相应的数据直接使用,这样做的好处是降低重复性的解析或者SQL查询之类的动作,从而有效的缓解服务器的压力。

缓存类型

在DiscuzX中用到了模板缓存、文件缓存、数据缓存的缓存方法。

参考网址:http://dev.discuz.org/wiki/index.php?title=%E7%BC%93%E5%AD%98%E6%9C%BA%E5%88%B6


3、[2012-03-28] 要从$array中获得它的前4项组成的数组,该如何实现?

用array_slice():

$subArray = array_slice($arr,0,4);

eg:

<?php$input = array("a", "b", "c", "d", "e");$output = array_slice($input, 2);      // returns "c", "d", and "e"$output = array_slice($input, -2, 1);  // returns "d"$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"// note the differences in the array keysprint_r(array_slice($input, 2, -1));print_r(array_slice($input, 2, -1, true));?>

4、[2012-03-28] jq从对象集中取出第一个对象

$("p").eq(0)

遍历对象集:
function jq(){
     
var f=$("p").add("span");    
     
for(var i=0;i< $(f).size();i++){
      alert($(f).eq(i).html());}
}

 

5、[2012-03-30] 【Chrome】最快的Google搜索设置

所以搞了个办法治一治Google,Chrome专用!
1、修改Chrome的默认搜索引擎为:。http://64.233.183.132/search?gbv=1&tbo=1&as_qdr=all&hl=en&num=50&q=%s
2、选项 - 高级 - 内容设置 (chrome://settings/content) 里禁用掉 64.233.183.132 这个域名的javascript运行权限。

参考自:http://blog.est.im/archives/4343


6、[2012-04-09] session.save_path和session.cookie_path

session.cookie_path ------> 应用于网站的路径,是URL当前目录,还是URL根目录
session.save_path -------> 把对话资料临时保存于服务器哪个地方

session.save_path 不设置时(no value),Linux下默认路径是为/tmp


7.[2012-04-10] mysql binlog大小问题过期时间

mysqld在每个二进制日志名后面添加一个数字扩展名。每次你启动服务器或刷新日志时该数字则增加。如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。如果你正使用大的事务,二进制日志还会超过max_binlog_size:事务全写入一个二进制日志中,绝对不要写入不同的二进制日志中。

my.ini中有两个设置:
#expire_logs_days = 10
#max_binlog_size = 100M 

Expire_logs_days :定义了mysql清除过期日志的时间。
二进制日志自动删除的天数。默认值为0,表示“没有自动删除”。启动时和二进制日志循环时可能删除。
max_binlog_size
如果二进制日志写入的内容超出给定值,日志就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB。

8、[2012-04-10] mysql 5.1以下版本没有reload /etc/my.cnf

mysql 5.1以下版本没有reload /etc/my.cnf

9、[2012-04-13] javascript提交表单时要注意

有时候需要用javascript提交表单,这个时候我们会用javascript:userform.submit();可是我在这样做的时候怎么也提交不成功,报出javascript错误Javascript Error: submit is not a function。百思不得其解,后来查阅资料才发现,在用userForm.submit()提交表单的时候,表单里面不能有name="submit"的元素,否则在提交的时候,该对象会和submit();方法发生混淆造成该错误!! 切记,切记!


10、[2012-04-13] 多服务器共享 SESSION 数据

想要共享 SESSION 数据,那就必须实现两个目标:
1、一个是各个服务器对同一个客户端产生的 SESSION ID 必须相同,并且可通过同一个 COOKIE 进行传递,也就是说各个服务器必须可以读取同一个名为 PHPSESSID 的 COOKIE;
2、另一个是 SESSION 数据的存储方式/位置必须保证各个服务器都能够访问到。 

简单地说就是多服务器共享客户端的 SESSION ID,同时还必须共享服务器端的 SESSION 数据。 
第一个目标的实现其实很简单,只需要对 COOKIE 的域(domain)进行特殊地设置即可。

第二个目标的实现可以使用文件共享方式,如 NFS 方式,但设置、操作上有些复杂。我们可以参考先前所说的统一用户系统的方式,即使用数据库来保存 SESSION 数据,这样各个服务器就可以方便地访问同一个数据源,获取相同的 SESSION 数据了。
如果网站的访问量很大的话,SESSION 的读写会频繁地对数据库进行操作,这样效率就会明显降低。

最优的方案是:Memcache存储session
将php.ini中改为:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,
用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session
时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。
缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺。

原创粉丝点击