变更wordpress博客域名时数据库所需修改

文件全部由根目录(http://www.laozhao.info)移动到子目录blog/中,数据库做以下修改:

表wp_options:
siteurl对应value改为http://zduo.me/blog/,
home对应value改为http://www.laozhao.info

表wp_posts:
update wp_posts set guid=replace(guid,’zduo.me/’,’zduo.me/blog/’)
update wp_posts set post_content=replace(post_content,’zduo.me/’,’zduo.me/blog/’)

老外手工制作2010年互联网状况图表


2010年最流行的顶级域名数量统计
8.88亿个.com域名
3.32亿个.net域名
860万个.org域名


2010年中每天正常邮件/垃圾邮件比例
2010年每天有2.94亿封邮件被发送,其中2.7亿封为垃圾邮件,只有2900万封是真实邮件
可以看出世界上90%的电子邮件都是垃圾邮件


各国互联网用户数量对比
中国4.2亿;欧盟3.37亿;印度1.1亿;巴西7600万;墨西哥3200万;葡萄牙500万


Twitter上粉丝最多的帐号统计
Ladygaga: 906万2883;BarackObama:718万3716;KatyPerry:643万594;algore:222万6181;Newsweek:133万7751.
数据来源: www.twitaholic.com


2000-2010年间全球网民增长数量统计
数据来源: http://www.Internetworldstats.com


2000年与2010年网民增长数量之比

引用地址http://www.70man.com/?p=7458

原文地址:http://www.damndigital.com/archives/20663

php导出excel文档

while($data_array=mysql_fetch_array($result)){
	$data[$i]=$data_array;
	$i++;
}

$title=array("game_name","des","url","add_time");
$keys=array("game_name","des","url","add_time");

exportToExcel($data,'aa.xls',$title,$keys);

function exportToExcel($data,$filename,$title,$keys){		//$keys為data中要導出的數據列
	header('Content-type: text/cvs');
	header("Content-Disposition: attachment; filename=\"$filename\"");
	$top = '數據導出時間:'.date('Y-m-d H:i:s');
	$table	= '';
	$table .= '';
	foreach($title as $value){
		$table .= '';						//列標題
	}
	$table .= '';
	$i =1;
	foreach($data as $value){
		$table .= '';						//序號
		foreach($keys as $key){									//數據內容
			$table .= '';
		}
		$table .= '';
		$i++;
	}
	$table .= '
'.$value.'
'.$i.''.$value[$key].'
'; $top = iconv('utf-8','gbk',$top); $table = iconv('utf-8','gbk',$table); echo $top; echo $table; exit; }

php下等长截取UTF8中英文混排的字符串

引用地址:http://hi.baidu.com/%D4%C6%CB%AF%C1%CB/blog/item/84ee45eec325d7f2b2fb95a8.html

/**
* 截取指定长度的字符串(UTF-8专用 汉字和大写字母长度算1,其它字符长度算0.5)
*
* @param string $string: 原字符串
* @param int $length: 截取长度
* @param string $etc: 省略字符(...)
* @return string: 截取后的字符串
*/

function cut_str_all($sourcestr, $cutlength = 80, $etc = '...')
{
	$returnstr = '';
	$i = 0;
	$n = 0.0;
	$str_length = strlen($sourcestr); //字符串的字节数
	while ( ($n<$cutlength) and ($i<$str_length) )
	{
		$temp_str = substr($sourcestr, $i, 1);
		$ascnum = ord($temp_str); //得到字符串中第$i位字符的ASCII码
		if ( $ascnum >= 252) //如果ASCII位高与252
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 6); //根据UTF-8编码规范,将6个连续的字符计为单个字符
			$i = $i + 6; //实际Byte计为6
			$n++; //字串长度计1
		}
		elseif ( $ascnum >= 248 ) //如果ASCII位高与248
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 5); //根据UTF-8编码规范,将5个连续的字符计为单个字符
			$i = $i + 5; //实际Byte计为5
			$n++; //字串长度计1
		}
		elseif ( $ascnum >= 240 ) //如果ASCII位高与240
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 4); //根据UTF-8编码规范,将4个连续的字符计为单个字符
			$i = $i + 4; //实际Byte计为4
			$n++; //字串长度计1
		}
		elseif ( $ascnum >= 224 ) //如果ASCII位高与224
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
			$i = $i + 3 ; //实际Byte计为3
			$n++; //字串长度计1
		}
		elseif ( $ascnum >= 192 ) //如果ASCII位高与192
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
			$i = $i + 2; //实际Byte计为2
			$n++; //字串长度计1
		}
		elseif ( $ascnum>=65 and $ascnum<=90 and $ascnum!=73) //如果是大写字母 I除外
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 1);
			$i = $i + 1; //实际的Byte数仍计1个
			$n++; //但考虑整体美观,大写字母计成一个高位字符
		}
		elseif ( !(array_search($ascnum, array(37, 38, 64, 109 ,119)) === FALSE) ) //%,&,@,m,w 字符按1个字符宽
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 1);
			$i = $i + 1; //实际的Byte数仍计1个
			$n++; //但考虑整体美观,这些字条计成一个高位字符
		}
		else //其他情况下,包括小写字母和半角标点符号
		{
			$returnstr = $returnstr . substr($sourcestr, $i, 1);
			$i = $i + 1; //实际的Byte数计1个
			$n = $n + 0.5; //其余的小写字母和半角标点等与半个高位字符宽...
		}
	}
	if ( $i < $str_length )
	{
		$returnstr = $returnstr . $etc; //超过长度时在尾处加上省略号
	}
	return $returnstr;
}

word-wrap:break-word在firefox下对table无效的解决方法

引用地址:http://www.firefly365.com/question/css/201007091937527643.html

word-wrap:break-word对于ie很早以前就支持了,但是firefox是从3.5开始支持的,不过,对于div标签有效,对于td标签好像无效,请看下面示例:

firefox下的效果:div中有效,td无效(ie也无效,不过ie下可以加上word-break:break-all)

div
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

table
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

解决方法:给table加上table-layout:fixed

div
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

table
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

巧妙设置使电驴(emule)下载完成后使电脑自动关机

引用地址:http://blog.sina.com.cn/s/blog_400347eb0100djoz.html

dir="D:\Program Files\eMule\Temp"
Set fso=CreateObject("Scripting.FileSystemObject")
cmd="shutdown -s -f -t 60"
Set ws=WScript.CreateObject("WScript.Shell")
Wscript.Echo "emule自动关机脚本已运行……"
count=0
do until count<-1
chksize = fso.GetFolder(dir).Size
If chksize=0 Then
ws.run cmd,0
End If
WScript.Sleep 120000
loop 

===========================================
将第一行引号内的路径改成你自己的emule临时文件目录(也就是dir="D:\Program Files\eMule\Temp" ,引号的要看你电脑具体的安装位置)
,将以上代码保存为文本文件,并将后缀改成vbs运行即可。
此脚本的作用是每两分钟检测一次temp文件夹,若emule下载完成,则temp为空,脚本执行关机命令倒计时60秒关机。

此外也可以参考:
用shutdown命令设置关机时间自动关闭计算机就行了。

附shutdown 的一些命令参数!

shutdown.exe -a 取消关机

shutdown.exe -f 强行关闭应用程序。

shutdown.exe -m \计算机名 控制远程计算机。

shutdown.exe -i 显示图形用户界面,但必须是Shutdown的第一个参数。

shutdown.exe -l 注销当前用户。

shutdown.exe -r 关机并重启。

shutdown.exe -t时间 设置关机倒计时。

shutdown.exe -c"消息内容" 输入关机对话框中的消息内容(不能超127个字符)。

比如你的电脑要在23:00关机,可以选择“开始→运行”,输入“at 23:00 Shutdown -s”,这样,到了23点,电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入 “Shutdown.exe -s -t 3600”,这里表示60分钟后自动关机,“3600”代表60分钟。

如果想取消的话,可以在运行中输入“shutdown -a”。另外输入“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。

虽然shutdown.exe是Windows XP下的程序,在Windows2000中是调用Windows下System中的Shell32.dll文件来实现关机的,例如 “indir\RunDLL32.exe indir\System\Shell32.dll,SHExitWindowsEx 8”,但在Win2000也可利用它,方法如下:

在WinXP安装目录下的System32文件夹中找到Shutdown.exe,将它复制到Win2000安装目录下的System32文件夹中,在“运行”中输入“Shutdown.exe”,即可像在Windows XP中一样使用该程序了。

当然,shutdown.exe还有一些强大的功能,你可以进一步实践探讨,充分利用 shutdown.exe 的强大功能。
PS:上述方法对Vista一样管用!1

PHP:把字符串中的任意连续字符换成一个对应字符

引用地址:http://www.onlycto.com/tech/2599/46.html


  //1,把字符串中的任意空格换成一个
  $str1 = 'A    B         C   ';
  echo '';
  echo '1:';
  echo preg_replace ("/\s+/", ' ', $str1);
  echo '';
  //2,把字符串中的任意连续字符 M 换成一个 M
  echo '2: ';
  $str1 = 'AMMMBMMMMCMM   ';
  echo preg_replace ("/M+/", 'M', $str1) .'
'; //3,把字符串中的任意连续字符换成一个对应字符 echo '3:
'; $str1 = 'ACCCB CCCCCGGG OOO YYYFFFXXXZZZZZ'; echo $str1 .'
'; $str2 = ''; $i = 0; for ($i=0; $i'; //4,把字符串中的任意连续字符换成一个对应字符 echo '4:
'; $str1 = 'ACCCB CCCCCGGG OOO YYYFFFXXXZZZZZ'; echo $str1 .'
'; $len = strlen($str1); $str2 = $str1[0]; $ch = $str2; for($i=1; $i<$len; $i++){ $ch2=$str1[$i]; if($ch!=$ch2){ $str2.=$ch2; $ch=$ch2; } } echo $str2 . "
"; //5,把字符串中的任意连续字符换成一个对应字符 echo '5:
'; $str1 = 'ACCCB CCCCCGGG OOO YYYFFFXXXZZZZZ'; echo preg_replace("/(.)\\1+/", "[url=file://\\1]\\1[/url]", $str1) .'
';

从淘宝、百度被列入“恶名市场”说起

  美国贸易代表处日前公布了一份“恶名市场”名单,列出全球30多个“帮助销售盗版及伪劣产品”的网络及实体市场。百度、阿里巴巴均位列榜上。美国贸易代表处称,这30多个市场均帮助非法销售受知识产权或专利保护的商品和物资,使“全球的企业及行业受到损害”。

  中国市场在这份榜单上所占比率最高。中国最大的搜索引擎公司百度、中国最大的网上交易系统阿里巴巴以及多家实体市场均位列这份名单上。进入这一名单的中国企业还包括:91.com、网络电视蚂蚁、北京秀水街、北京海龙电子城、上海杨浦颐高数码城、深圳罗湖市场、浙江义乌小商品市场、香港女人街。

  一、淘宝的抉择

  马云重整阿里巴巴价值观的公开信还没有落灰,却又传来了淘宝被美国贸易代表办公室(USTR)列入了年度“恶名市场”(Notorious Markets)的消息。虽然笔者觉得马云对待仿冒与盗版的态度一直暧昧而虚伪,但客观说,比起不少国内网站对国外同行肆无忌惮的低水平剽窃,淘宝对产品的思考与创新在国内企业里面绝对是领先的,它面临的问题并不完全在它本身,它的野心很多时候受掣于低诚信又急功近利的中国经济,马云的选择很多时候只是对利益的妥协。

  所以当马云的野心不再局限于B2B、C2C这类单纯的电子商务而时时在为以金融为核心的全功能的大电子商务布局,当淘宝的战略重点逐渐由单一的规模流量调整到盈利模式的突围,也当仿冒伪劣对淘宝本身的伤害越来越大,优质化——包括版权、诚信和服务——已成为了淘宝必须解决的问题。为此,淘宝不惜牺牲流量和卖家资源推动新的搜索规则(当然此举也可认为是为淘宝商城铺路),同时马云不仅高高举起了价值观的大旗,也在淘宝展开了大规模的打击侵害商标权的运动。

  二、无底线的百度

  李志绥医生在他的回忆录里面写到“不管是在过去还是现在,只有一直违背自己的良心,才能在中国生存下去”。百度太了解中国了,相比淘宝对待版权问题的骑墙姿态,盗版几乎就是百度的另外一个名字。

  除了USTR提到的利用“深层链接”引导买家购买侵权产品之外,百度MP3搜索、百度文库这些百度的拳头产品根本就是盗版的集散地,百度百科更是肆无忌惮地抄袭WIKI中文,而产品也基本来源于对国外同行的复制,甚至作为脸面的首页也完全照搬自Google(却发展不出Google的Logo文化)。

  和腾讯一样,百度是中国互联网企业里面最重实利的公司,为了利益,它无所不为。它的命根子——竞价排名,它的杀手锏——人为干扰搜索结果,都是以阻碍信息流动为基础的,如果我们把这个行为稍稍放大,完全可以说百度和GFW并没有什么本质区别。如果把促进信息流动可做互联网的基本精神的话,那么百度从一开始就突破了底线,而对一个没有底线的企业,盗版根本就算不上一回事。

  百度太依赖于对中国的了解了,它把毒药当糖水喝。

  三、仿冒在中国

  柳传志曾经这样描述联想的起步之路,缺资金、缺技术,只能在全球产业分工里利润最薄、技术含量最低的环节挣辛苦钱,而且能够得到这样的机会,还多少是因为别人已经懒得挣这个小钱。

  某种程度上说,联想得以成为今日的联想,当然是柳传志、倪光南、杨元庆等牛人超群才华和以命拼搏的结晶,却也得益于IBM对PC的开放和Wintel架构对技术标准的固化,联想得以以较低的成本合理合法地进入国际化的平台与国际巨头展开竞争。试想,如果当年的PC市场格局和一两年前的智能手机一样的话,以中国薄弱的技术积累,依靠自主开发,联想会有机会吗?别忘了,Intel的MeeGo至今还没什么产品,Nokia的塞班只能依靠惯性在中国忽悠人了,Windows Phone的命运依然难料,而一个成功者——Moto,依靠的恰恰不是核心技术上的自主创新。

  联想的故事也是很多中国企业的故事,靠贸易、加工起家,但联想的运气不是每一个行业都有的,比起华为选择的“自主创新”这样的险途。更多的企业投身于“仿制”这样的捷径。

  同时,由于长时间和整个世界的隔绝,版权、专利这些概念,在相当长的时间内,对国人而言是闻所未闻的;而且版权对第三世界多少是带有掠夺性的(想想关于医药专利的那些争论和限制,想想中国合资企业以土地、人力换技术的不成功的尝试),比城墙还厚的技术壁垒及高额的专利费用是大部分中国企业难以承受之重,再加上政府的纵容乃至推动,仿冒盗版和假伪劣很快烽火燎原,外国人在北京秀水街、上海襄阳路买仿款甚至成了某些国人的骄傲。

  有一种说法,中国人穷,仿冒商品正好满足中国人的需求,是消费者催生了假冒和盗版的市场,这个话得另外一层意思其实就是,中国人穷,三聚氰胺的奶粉、辣椒精的火锅、地沟油的小菜正好满足中国人的需求。总是有人把中国二、三线市场描绘的恶劣无比,好像不恶心就不能拿下哪里的市场,其实市场的生态就是这样被他们做坏的,把低端等同于低质等同于假冒伪劣,这多少有些阴谋的味道。哎,在中国,要搞清楚什么是无耻真不容易,无耻已经是这个国家的一种常态了。

  说的有点激动了,回到主题,抛开没多大意义的道德拷问,仿制其实是中国企业起步时不多的现实路径之一,如果说殖民掠夺是西方国家资本积累的原罪,那么盗版仿制就是中国企业技术积累的原罪,有原罪并不可怕,可怕的是沉溺于原罪带了的巨大利益而不把自己洗白,中国的版权困局不在于曾经错了,而在于根本无心去修正这个错误;如果说最初是无选择的无奈,现在就完全是贪婪的无耻,用袁腾飞老师的话说,西方人用鸦片治病,我们拿鸦片当饭吃。

  四、复制的侏儒——中国互联网

  不少人说,中国的互联网和美国几乎是同时起步的,是完全有能力和美国企业一较高低的。这个说法笔者个人觉得很可笑,比如笔者从没有那一个风靡全球的互联网应用是由中国企业开发而后风靡全球的。

  中国的互联网的不幸在于,它不仅要面对对整个互联网而言都悬而未决的互联网版权理论争论,还要和传统行业一同面对中国式的版权困局,更致命的是要面对有中国特色的互联网审查与封锁制度(所以淘宝、百度被列入恶名市场的性质也和名单中的另一著名网站海盗湾不同)。

  说到互联网管制,这实在是个无论用多恶劣的词汇去K它都不会显得过分的东西,这里只讨论它对互联网行业的影响,简单说,笔者觉得它就是互联网领域的闭关锁国政策,闭关锁国的危害,我们实在太懂了,想想明清相对于世界的衰落,想想我朝的前30年,再谈中国互联网的前景,再悲观都算不上悲观。

  当政府对互联网的基本思路是管制而不是促进发展,当对互联网企业的惩罚集中于内容是否敏感而不是技术的抄袭和知识产权的盗用,互联网企业的核心也自然不在产品的创新而是对内容的审查,比如新浪微博,它的用户粘性更多时候不源自产品本身而是依靠名人效应,而它在微博小秘书上的投入(钱和精力)恐怕也不会低于研发。另一个现象是,在国内的互联网企业里面,最有野心也最有活力的企业出现在产品最传统、技术也最不前沿的电子商务领域,比如马云的阿里系,而这仅仅因为他们离敏感词足够远。

  所以复制与抄袭对中国的互联网正常的就像喝水吃饭,Yahoo后面出了四大门户、Google后面自然产生百度、ebay后面有淘宝、Amazon后面有当当卓越、Youtube后面有优酷土豆、Facebook后面有人人开心、twitter后面有微博、……,还有山寨天王腾讯,更是几乎复制了任何成功的互联网产品。当几乎所有的中国学生在我们这片神奇的土地上都打败了外国老师,诞生的也不是真正的强者,而只是耍流氓的侏儒,因为他们手中的多数产品其实都还是要弱于老师们的产品,他们的胜利凭借的只是对中国之恶的深刻理解与实践。什么版权、自主创新、知识产权和互联网理想都沦为了欺骗用户和大学毕业生的鬼话,耍流氓才是这个市场的本质。

  五、希望与绝望

  写到这里,实在想写几句河蟹的好话,留一个充满希望的尾巴,比如笔者相信随着中国消费市场与国际的融合、在充分竞争的那些行业里,越来越多的中国企业会主动抛弃仿冒假伪这些东西,加大创新,并促进中国知识产权保护法律的逐步完善。

  是的,笔者确实相信上面这句话,因为对版权的尊重、对创新的追求从根本上说是导向交易费用的降低和产品附加值的增加的,让人们最终抛弃仿冒与盗版的将不是道德,而是利益,比起利益,虚幻的道德是靠不住的,利益才产生希望。

  但让希望真正成为希望的前提是开放和充分的竞争,而这又不免让希望变成了真正的绝望,……

  附:USTR官网“恶名市场”名单《Out-of-Cycle Review of Notorious Markets

  来源:宋大妈投稿,原文链接

js中showModalDialog和open子窗口向父窗口传值方法

showModalDialog:

父窗口:

 function addresswindow(){
  var adr=window.showModalDialog(‘index.php’,”,’dialogWidth:400px;dialogHeight:200px;center:Yes;resizable:no;status:no;scroll:no;’);
  if (adr != null && adr != “”) {
             var strs = new Array();
             strs = adr.split(“,”);
             window.document.getElementsByName(“address1”)[0].value = strs[0];
             window.document.getElementsByName(“address2”)[0].value = strs[1];
            window.document.getElementsByName(“address3″)[0].value = strs[2];
         }

 }

子窗口:

<base target=”_self” />   ——加上这一句话可以在子窗口进行一些操作,要是不加的话,比如查询会另弹出一个页面来
<script>
function backparent(){
    var adr=’1111111,22222222,33333333′;
    window.returnValue = adr;
    window.close();

}
</script>

其中adr变量为两个窗口之间传值的桥梁。

使用open方法打开的窗口可以用window.opener.document.getElementById(‘id’).value=’1111′;来向操作父窗口。

************************************

附1:Window.ShowModalDialog参数详解

基本介绍:
         showModalDialog()                              (IE 4+ 支持)
         showModelessDialog()                         (IE 5+ 支持)
         window.showModalDialog()                 方法用来创建一个显示HTML内容的模态对话框。
         window.showModelessDialog()            方法用来创建一个显示HTML内容的非模态对话框。
使用方法:
         vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
         vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])
参数说明:
        sURL                —   必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
        vArguments   —    可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
        sFeatures       —    可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
—————-
1.   dialogHeight:   对话框高度,不小于100px
2.   dialogWidth:   对话框宽度。
3.   dialogLeft:    离屏幕左的距离。
4.   dialogTop:    离屏幕上的距离。
5.   center:         { yes | no | 1 | 0 } :             是否居中,默认yes,但仍可以指定高度和宽度。
6.   help:            {yes | no | 1 | 0 }:               是否显示帮助按钮,默认yes。
7.   resizable:      {yes | no | 1 | 0 } [IE5+]:    是否可被改变大小。默认no。
8.   status:         {yes | no | 1 | 0 } [IE5+]:     是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.   scroll:           { yes | no | 1 | 0 | on | off }:是否显示滚动条。默认为yes。

下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.   dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.   edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.   unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

 ************************************

附2:window.open参数详解

window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)