<?
require("./mysql.class.php");
$DB=new DB_MYSQL;
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="center";
$DB->connect(); // 连接数据库
?>
require("./mysql.class.php");
$DB=new DB_MYSQL;
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="center";
$DB->connect(); // 连接数据库
?>

赵普,宋太祖赵匡胤的开国大臣、宋太宗赵匡义的治国能臣,三度出任宰相。盛传他熟悉吏事,善于解决实际问题。一次太宗赵匡义与之探讨,赵普说了如下一段话:“《论语》二十篇,吾以一半佐太祖定天下。”从此,“半部《论语》治天下”的故事广为流传。
对我人生和事业影响最大的一部书,是《论语》。我只是切实奉行了其中几句话,就得到了巨大的收益。孔子说“学而时习之”,我是“习而时学之”;别人是“参禅悟道”,我是“悟道参禅”。信手拈来书中几句话,说说我的感受……
阅读全文
对我人生和事业影响最大的一部书,是《论语》。我只是切实奉行了其中几句话,就得到了巨大的收益。孔子说“学而时习之”,我是“习而时学之”;别人是“参禅悟道”,我是“悟道参禅”。信手拈来书中几句话,说说我的感受……

问:为什么服务器在连续运行多天后或访问峰值后,进程中的一个Apache.exe占用内存几百兆不减少?
答:用记事本打开apache2\conf\httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。
通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出
解决方法: 初始化,unset不用的大数据量的变量。适当减小操作数据规模。
检查内存释放状况。
$a=array();
for($i=0;$i<=1000000;$i++)
{
$a[$i]=$i;
}
unset($a);
假设我原始占用内存50M
多刷新几次,占用内存到200M,稍后恢复,但不再是50M,而是60M
说明多出10M,看来这有可能是内存泄露引起
找到问题了,是由于MaxRequestsPerChild设置为0的后果
现已经改成200
PHP的unset参看:
http://www.xiangdong.org/blog/post/1520/
答:用记事本打开apache2\conf\httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。
通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出
解决方法: 初始化,unset不用的大数据量的变量。适当减小操作数据规模。
检查内存释放状况。
$a=array();
for($i=0;$i<=1000000;$i++)
{
$a[$i]=$i;
}
unset($a);
假设我原始占用内存50M
多刷新几次,占用内存到200M,稍后恢复,但不再是50M,而是60M
说明多出10M,看来这有可能是内存泄露引起
找到问题了,是由于MaxRequestsPerChild设置为0的后果
现已经改成200
PHP的unset参看:
http://www.xiangdong.org/blog/post/1520/
完成升级博客2.1.0到2.1.1。。。
虚拟机中的串口连接可以采用两种方法。一种是指定虚拟机的串口连接到实际的COM上,例如开发机连接到COM1,目标机连接到COM2,然后把两个串口通过串口线相连接。另一种更为简便的方法是:在较高一些版本的VMware中都支持把串口映射到命名管道,把两个虚拟机的串口映射到同一个命名管道。例如,在两个虚拟机中都选定同一个命名管道 \\.\pipe\com_1,指定target机的COM口为server端,并选择"The other end is a virtual machine"属性;指定development机的COM口端为client端,同样指定COM口的"The other end is a virtual machine"属性。对于IO mode属性,在target上选中"Yield CPU on poll"复选择框,development机不选。
不知道为什么我的fedora 9 下没有以前那个可以选择抓图模式设定延时的抓图工具了,只有一个gnome ScreenShot,按PrtScr 抓全屏,按Alt+PrtScr 抓当前窗口。可我想弄复杂一点的就不行了。所以只能装了一个 scrot,scrot 是个命令行截图工具,小巧灵活,功能强悍。scrot 的常用用法如下:
抓取整个桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
基本上上面这些用法能解决绝大多少抓图任务了,如果你还有什么特殊要求可以自己 man 一下。
抓取整个桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
基本上上面这些用法能解决绝大多少抓图任务了,如果你还有什么特殊要求可以自己 man 一下。
这世上有些东西,最好别看透,留几分神秘,留一点朦胧,留一丝悬念,可能会更有意思些。
魔术,如果让观众看透了手法,知道了诀窍,这门艺术也就寿终正寝了;变脸,正因为迄今为止大伙都没有看透其技术真相,才能屡演屡新,大受欢迎,成为国粹。
交朋友,各有目的,或为友谊,志同道合;或为利益,互相利用;或为酒肉,吃喝为乐,都能好得兄弟一般。但如果以鹰隼般犀利的眼神,看透每一个朋友的交友动机,你可能就成了孤家寡人,因为“人至察则无徒”。毕竟,管鲍之交,少如凤毛麟角;琴台知音,更是旷古罕见。怪不得胡适有言:“做学问要在无疑处有疑,交朋友要在有疑处不疑。”当然,也不能糊涂到朋友把你卖了,你还替他数钱。
阅读全文
魔术,如果让观众看透了手法,知道了诀窍,这门艺术也就寿终正寝了;变脸,正因为迄今为止大伙都没有看透其技术真相,才能屡演屡新,大受欢迎,成为国粹。
交朋友,各有目的,或为友谊,志同道合;或为利益,互相利用;或为酒肉,吃喝为乐,都能好得兄弟一般。但如果以鹰隼般犀利的眼神,看透每一个朋友的交友动机,你可能就成了孤家寡人,因为“人至察则无徒”。毕竟,管鲍之交,少如凤毛麟角;琴台知音,更是旷古罕见。怪不得胡适有言:“做学问要在无疑处有疑,交朋友要在有疑处不疑。”当然,也不能糊涂到朋友把你卖了,你还替他数钱。

如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入
阅读全文
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE问题的处理。我们知道目前流行的***页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用 java.net.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的 “顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了!
我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是 Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。
Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻:
阅读全文
我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是 Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。
Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻:

一个usb系统,其控制芯片的程序是C写的,现在想加入温度传感器,已有现成的汇编代码(伟纳ME300A+产品提供)
阅读全文
TEMPL DATA 26H
TEMPH DATA 27H
FLAG1 EQU 38H ;是否有ds18b20
DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
ORG 0000H
MAIN: MOV SP,#30H
START: CALL RESET
SETB P3.2
CALL RESET
JNB FLAG1,MAIN
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#044H ; 发出温度转换命令
CALL WRITE
CALL RESET
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#0BEH ; 发出读温度命令
CALL WRITE
CALL READ ; 将读出的温度数据保存到26H/27H
;CALL CONVTEMP
;CALL DISPBCD
;CALL DISP1
JMP MAIN
;*************************************************
RESET: SETB DATE_LINE
NOP
CLR DATE_LINE
MOV R0,#0D6H ;主机发出延时642微秒的复位低脉冲
MOV R1,#03H
TSR1: DJNZ R0,$
MOV R0,#0D6H
DJNZ R1,TSR1
SETB DATE_LINE ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#4AH
TSR2: JNB DATE_LINE,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2
JMP TSR4 ; 延时
TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在
JMP TSR5
TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在
JMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,$ ; 时序要求延时一段时间
TSR7: SETB DATE_LINE
RET
;********************************************************************
WRITE: MOV R2,#8 ;一共8位数据
CLR CY
WR1:
CLR DATE_LINE ;开始写入DS18B20总线要处于复位(低)状态
MOV R3,#10
DJNZ R3,$ ;总线复位保持16微妙以上
RRC A ;把一个字节DATA 分成8个BIT环移给C
MOV DATE_LINE,C ;写入一个BIT
MOV R3,#2EH
DJNZ R3,$ ;等待46微妙
SETB DATE_LINE ;重新释放总线
NOP
DJNZ R2,WR1 ;写入下一个BIT
SETB DATE_LINE
RET
;******************************************************
READ: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出
MOV R1,#26H ; 存入26H 27H
RE00: MOV R2,#8
RE01: CLR CY
SETB DATE_LINE
NOP
NOP
CLR DATE_LINE ;读前总线保持为低
NOP
NOP
NOP
SETB DATE_LINE ;开始读总线释放
MOV R3,#18 ;延时18微妙
DJNZ R3,$
MOV C,DATE_LINE ;从DS18B20总线读得一个BIT
MOV R3,#46
DJNZ R3,$ ;等待46微妙
RRC A ;把读得的位值环移给A
DJNZ R2,RE01 ;读下一个BIT
MOV @R1,A
INC R1
DJNZ R4,RE00
RET
END
TEMPH DATA 27H
FLAG1 EQU 38H ;是否有ds18b20
DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
ORG 0000H
MAIN: MOV SP,#30H
START: CALL RESET
SETB P3.2
CALL RESET
JNB FLAG1,MAIN
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#044H ; 发出温度转换命令
CALL WRITE
CALL RESET
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#0BEH ; 发出读温度命令
CALL WRITE
CALL READ ; 将读出的温度数据保存到26H/27H
;CALL CONVTEMP
;CALL DISPBCD
;CALL DISP1
JMP MAIN
;*************************************************
RESET: SETB DATE_LINE
NOP
CLR DATE_LINE
MOV R0,#0D6H ;主机发出延时642微秒的复位低脉冲
MOV R1,#03H
TSR1: DJNZ R0,$
MOV R0,#0D6H
DJNZ R1,TSR1
SETB DATE_LINE ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#4AH
TSR2: JNB DATE_LINE,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2
JMP TSR4 ; 延时
TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在
JMP TSR5
TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在
JMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,$ ; 时序要求延时一段时间
TSR7: SETB DATE_LINE
RET
;********************************************************************
WRITE: MOV R2,#8 ;一共8位数据
CLR CY
WR1:
CLR DATE_LINE ;开始写入DS18B20总线要处于复位(低)状态
MOV R3,#10
DJNZ R3,$ ;总线复位保持16微妙以上
RRC A ;把一个字节DATA 分成8个BIT环移给C
MOV DATE_LINE,C ;写入一个BIT
MOV R3,#2EH
DJNZ R3,$ ;等待46微妙
SETB DATE_LINE ;重新释放总线
NOP
DJNZ R2,WR1 ;写入下一个BIT
SETB DATE_LINE
RET
;******************************************************
READ: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出
MOV R1,#26H ; 存入26H 27H
RE00: MOV R2,#8
RE01: CLR CY
SETB DATE_LINE
NOP
NOP
CLR DATE_LINE ;读前总线保持为低
NOP
NOP
NOP
SETB DATE_LINE ;开始读总线释放
MOV R3,#18 ;延时18微妙
DJNZ R3,$
MOV C,DATE_LINE ;从DS18B20总线读得一个BIT
MOV R3,#46
DJNZ R3,$ ;等待46微妙
RRC A ;把读得的位值环移给A
DJNZ R2,RE01 ;读下一个BIT
MOV @R1,A
INC R1
DJNZ R4,RE00
RET
END

两年来的投资使我经历了股市的牛熊更迭,基市的跌宕起伏,可以说这样的经历对于每个投资者来说既是不幸的,又是幸运的。说它是不幸的,因为多数的投资者都没躲过这场劫难;说它是幸运的,因为以前投资者可能要十年八年才能获得经验的机会,现在两年就呈现给了你!关键看你有没有吸取教训,总结和反思经验教训!
经验之一:贪婪者死!
虽说人都是受利益驱动的,大家投资也好、理财也好目的都是为了钱,也可以说为了生活的更好,钱固然很重要,但钱不是生活得好的唯一标准,好的生活还需要许多其他的东西来充实!人如果把追求金钱作为唯一的目标,那么就会形同槁木,或者因过度追求金钱,贪恋与金钱而自我毁灭!只有你的贪婪有限,能够正视投资、理财,正视金钱,你才能保持良好心态,纵横于基金的王国!理性客观地作出自己的判断!
阅读全文
经验之一:贪婪者死!
虽说人都是受利益驱动的,大家投资也好、理财也好目的都是为了钱,也可以说为了生活的更好,钱固然很重要,但钱不是生活得好的唯一标准,好的生活还需要许多其他的东西来充实!人如果把追求金钱作为唯一的目标,那么就会形同槁木,或者因过度追求金钱,贪恋与金钱而自我毁灭!只有你的贪婪有限,能够正视投资、理财,正视金钱,你才能保持良好心态,纵横于基金的王国!理性客观地作出自己的判断!

http://www.phpchina.com/html/68/n-34068.html
很多程序员在干了两三年后,会有一阵子的迷惘,他们在想,我这样子的算是优秀的程序员吗?这日子一天一天的过,每天不断的重复,也不知道干了些什么。其实当你有这个迷惘的时候,证明你最少是一个熟手了,不是刚毕业那会,急着工作,什么都不会,凡事现学,那时候想不到这个问题。当你做了两三年,公司里的项目基本都对你不陌生了,你也算是这个公司的老人了,对于写代码完成任务,非常容易了。这个时候人很容易感到厌倦,弄来弄去还是这点东西,没劲啊。这个时候特想知道别人是怎么过来的,别人每天都在干吗。我是不是要学点新的东西了呢。
阅读全文

以PHP同事突然问我这个问题,呵呵,记录一下:
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
truncate table 表名
方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
转载来源:http://www.160km.com/bear/?p=103
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空
例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);
3、 js使用数据时可以使用escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空
例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);
3、 js使用数据时可以使用escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
最近,手机费用暴涨,我得查查短信为何这么多,进入移动网站,得到一个短信清单如下:
短信费 81.05
彩信费 1.80
GPRS流量费 273.33
本地基本话费 1.99
国内长途费 28.03
必选套餐费 20.00
福娃音乐计划套餐费 6.00
费用合计 412.20
短信总记录数 1114
免费短信记录数 300
重点查短信:
发送时间 通信类型 对方号码 基本通话费
短信条数 短信号码
两个大头,共发短信552:
得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):
短信费 81.05
彩信费 1.80
GPRS流量费 273.33
本地基本话费 1.99
国内长途费 28.03
必选套餐费 20.00
福娃音乐计划套餐费 6.00
费用合计 412.20
短信总记录数 1114
免费短信记录数 300
重点查短信:
发送时间 通信类型 对方号码 基本通话费
11月01日00:00:33 普通短信 861377489428* 0.00
11月01日00:01:16 普通短信 861358196226* 0.00
11月01日00:04:53 普通短信 861377489428* 0.00
11月01日00:08:03 普通短信 861386815989* 0.00
通过editplus按住:alt+鼠标选取出号码,丢如Linux,通过命令:cat mobile.txt|sort > mobile_number11月01日00:01:16 普通短信 861358196226* 0.00
11月01日00:04:53 普通短信 861377489428* 0.00
11月01日00:08:03 普通短信 861386815989* 0.00
cat mobile.txt |sort |uniq -c
短信条数 短信号码
65 861350110466*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*
两个大头,共发短信552:
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861358196226*|wc
313 313 4695 这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861386815989*|wc
239 239 3585 这个是**点的
313 313 4695 这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861386815989*|wc
239 239 3585 这个是**点的
得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):
cat qqyellow.txt |sort|uniq -c
1.Linux下关闭和开启防火墙
1) 重启后生效
2) 即时生效,重启后失效
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
2.查看防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
[root@101/udp socket_interface]# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2.查看防火墙:
iptables -L