前提:LINUX系统、安装inotify-tools、xdotool、双显示器
作用:保存代码时,自动刷新浏览器,再不用按F5了!
inotifywait -mrq –exclude “.svn” -e close_write /data/www/source | while read line; do
id=`xdotool getactivewindow | head -1`
xdotool search –onlyvisible –class ‘chrome’ windowfocus key –clearmodifiers ctrl+r
#xdotool search –onlyvisible –class ‘firefox’ windowfocus key –clearmodifiers ctrl+r
#xdotool search –onlyvisible –class ‘opera’ windowfocus key –clearmodifiers ctrl+r
xdotool windowactivate $id
done
对于唯一索引,插入重复项,
insert into 会导致错误,
insert ignor into不会,
replace into删除已存在的记录再插入,
on duplicate key update会更新已有记录。
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
没有重复记录插入,如有重复记录,等同于
UPDATE table SET c=c+1 WHERE a=1;//假设a为主键或唯一索引
session_destory关闭session文件,清除session id,在本次请求完成前保留$_SESSION数组内容。
<?php
session_start();
$_SESSION['id']=1;
echo session_id(); //t3b39d0521gpvbp2vikkikpb00
echo ‘<br>’;
echo $_SESSION['id']; //1
echo ‘<br>’;
session_destroy();
echo session_id(); //”
echo ‘<br>’;
echo $_SESSION['id']; //1
$_SESSION['id']=2; //再次请求时无此变量
?>
session_unset清空session变量,保留session文件及session id。
<?php
session_start();
$_SESSION['id']=1;
echo session_id(); //t3b39d0521gpvbp2vikkikpb00
echo ‘<br>’;
echo $_SESSION['id']; //1
echo ‘<br>’;
session_unset();
echo session_id(); //t3b39d0521gpvbp2vikkikpb00
echo ‘<br>’;
echo $_SESSION['id']; // Notice: Undefined index: id
$_SESSION['id']=2; //再次请求时id=2;
?>
通常要循环处理一个数组的时候,是这样写的
$arr=range(1,10000);
foreach($arr as $k=>$v)
{
$arr[$k]++;
}
如果要优化一个循环,最常见的方法就是减少循环的次数。比如,使用DUFF装置。它以创建者Tom Duff的名字命名,最早在C语言中试用,基本概念是通过计算迭代次数是否为8的倍数,将一个循环展开成一系列的语句。经Andrew B. King优化后,代码如下:
$arr=range(1,10000);
$iterations=floor(count($arr)/8);
$leftover=count($arr)%8;
$i=0;
if($leftover>0)
{
do
{
$arr[$i++]++;
}while(--$leftover>0);
}
do
{
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
$arr[$i++]++;
}while(--$iterations>0);
看上去代码更多,但是执行速度更快。上面2个代码执行时间相差60%。
在可读性和效率之间如何取舍,则是另外一个问题。
定义一个center方法
jQuery.fn.center = function(parent) {
if (parent) {
parent = this.parent();
} else {
parent = window;
}
this.css({
“position”: ”absolute”,
“top”: ((($(parent).height() - this.outerHeight()) / 2) + $(parent).scrollTop() + ”px”),
“left”: ((($(parent).width() - this.outerWidth()) / 2) + $(parent).scrollLeft() + ”px”)
});
return this;
}
然后你就可以
$(element).center(true); //父元素中居中
$(element).center(false); //屏幕居中
来源 http://stackoverflow.com/questions/210717/using-jquery-to-center-a-div-on-the-screen
function parse($m)
{
return call_user_func("parse{$m[1]}",$m[3]);
}
function parsea($str,$attr=array('href'))
{
return '<a '.parseattr($str,$attr).'>';
}
function parsep($str,$attr=array('align','id'))
{
return '<p '.parseattr($str,$attr).'>';
}
function parseattr($str,$attr=array())
{
if(empty($attr))return '';
$attrs=explode(' ', $str);
foreach ($attrs as $k=>$v)
{
foreach ($attr as $a)
{
if(strtolower(substr($v, 0,strlen($a)).'=')===strtolower($a.'='))
{
continue 2;
}
}
unset($attrs[$k]);
}
return implode(' ', $attrs);
}
function myreplace($str)
{
$reg='/<(p|a)(\s+)(.*?[^>])>/is';
return (preg_replace_callback($reg,'parse',$str));
}
$str='<p align="center" class="asd" id="qwe">adf<a href="#" class="asd" id="qwe" align="center">123</a><div id="iii" style="color:red">4<p id="ww">5</p>6</div></p>';
echo myreplace(strip_tags($str,'<p><a>'));
//<p align="center" id="qwe">adf<a href="#">123</a>4<p id="ww">5</p>6</p>
至于加哪里,你懂的,这是生活在此地的基本生活技能。
74.125.224.97 plus.google.com
74.125.224.105 plus.google.com
74.125.224.98 plus.google.com
74.125.224.104 plus.google.com
74.125.224.101 plus.google.com
74.125.224.109 plus.google.com
74.125.224.96 plus.google.com
74.125.224.106 plus.google.com
74.125.224.100 plus.google.com
74.125.224.110 plus.google.com
74.125.224.102 plus.google.com
74.125.224.107 plus.google.com
74.125.224.99 plus.google.com
74.125.224.108 plus.google.com
74.125.224.111 plus.google.com
74.125.224.103 plus.google.com
209.85.175.132 images1-focus-opensocial.googleusercontent.com
209.85.175.132 images2-focus-opensocia2.googleusercontent.com
209.85.175.132 s2.googleusercontent.com
209.85.143.132 lh1.googleusercontent.com
209.85.175.132 lh1.googleusercontent.com
209.85.143.132 lh2.googleusercontent.com
209.85.175.132 lh2.googleusercontent.com
209.85.143.132 lh3.googleusercontent.com
209.85.175.132 lh3.googleusercontent.com
209.85.175.132 lh4.googleusercontent.com
209.85.143.132 lh4.googleusercontent.com
209.85.143.132 lh5.googleusercontent.com
209.85.175.132 lh5.googleusercontent.com
209.85.143.132 lh6.googleusercontent.com
209.85.175.132 lh6.googleusercontent.com
203.208.46.29 picadaweb.google.com
203.208.46.29 lh1.ggpht.com
203.208.46.29 lh2.ggpht.com
203.208.46.29 lh3.ggpht.com
203.208.46.29 lh4.ggpht.com
203.208.46.29 lh5.ggpht.com
203.208.46.29 lh6.ggpht.com
203.208.46.29 lh6.googleusercontent.com
203.208.46.29 lh5.googleusercontent.com
203.208.46.29 lh4.googleusercontent.com
203.208.46.29 lh3.googleusercontent.com
203.208.46.29 lh2.googleusercontent.com
203.208.46.29 lh1.googleusercontent.com
203.208.46.29 plus.google.com
203.208.46.29 talkgadget.google.com




Recent Comments