crlf
Dos和windows采用回车+换行CR/LF表示下一行, 而UNIX/Linux采用换行符LF表示下一行, 苹果机(MAC OS系统)则采用回车符CR表示下一行. CR用符号’r’表示, 十进制ASCII代码是13, 十六进制代码为0x0D; LF使用’n’符号表示, ASCII代码是10, 十六制为0x0A. 所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.
Dos和windows采用回车+换行CR/LF表示下一行, 而UNIX/Linux采用换行符LF表示下一行, 苹果机(MAC OS系统)则采用回车符CR表示下一行. CR用符号’r’表示, 十进制ASCII代码是13, 十六进制代码为0x0D; LF使用’n’符号表示, ASCII代码是10, 十六制为0x0A. 所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.
参考:http://en.wikipedia.org/wiki/HTTP_cookie 格式 These pieces of data follow the name=newvalue pair and are separated by semicolons. For example, a cookie can be created by the server by sending a line Set-Cookie: name=newvalue; expires=date; path=/; domain=.example.org. 客户端发出的请求中的cookie头部字符串的格式: Cookie TestCookie1=something+from+somewhere; TestCookie2=something+from+somewhere; BAIDUID=30D053A9543ACCBDC20438B8FB436B1D:FG=1; USERID=7382087f659726d0fa44f53a002f5a; BD_UTK_DVT=1; _ML_HIDE=1_; tName=pangyongtao; 108057_notice=5; BAIDU_WISE_UID=frontui_1285471020_9585; BDUSS=2VXQ35TbkdMTGMzQzR4dXVjNnk5dGtvdDhYNX5sUkgxQWl3OTktbHFlZ2M4OHhNQVFBQUFBJCQAAAAAAAAAAApRLgs5~jsDcGFuZ3lvbmd0YW8AAAAAAAAAAAAAAAAAAAAAAAAAAADA6qRyAAAAAMDqpHIAAAAA7FtCAAAAAAAxMC44MS41MBxmpUwcZqVMQ; __utma=147196964.475967525.1286792315.1286792315.1286800343.2; __utmz=147196964.1286792315.1.1.utmccn=(referral)|utmcsr=baidu.com|utmcct=/more/|utmcmd=referral; client_citycode=bj; OPENPLATFORM_SP=39fe70616e67796f6e6774616f3b03_1286979780; logmid=pangyongtao; logmauth=9d99d8a56a6b27b330ac490ed1344db0; logmt=1286981629 服务器端设定cookie的header: Set-Cookie [...]
1、curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $header=array(‘Keep-Alive: 300′,);// 不能搞成k=>v的形式,跌倒2次了。。。 2、curl_setopt($ch, CURLOPT_VERBOSE,TRUE); 3、$ret['all'] = curl_getinfo($ch); windows下的辅助手段: wireshark ff插件:tamper data; firebug; ================================================== Php curl的常用选项 CURLOPT_AUTOREFERER 当根据Location:重定向时,自动设置header中的Referer:信息。 CURLOPT_FAILONERROR 显示HTTP状态码,默认行为是忽略编号小于等于400的HTTP信息。 CURLOPT_FOLLOWLOCATION 启用时会将服务器服务器返回的”Location: “放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。 CURLOPT_MAXREDIRS 指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的。 CURLOPT_HEADER 启用时会将头文件的信息作为数据流输出。 CURLINFO_HEADER_OUT 启用时追踪句柄的请求字符串。 CURLOPT_MUTE 启用时将cURL函数中所有修改过的参数恢复默认值。 CURLOPT_NOBODY 启用时将不对HTML中的BODY部分进行输出。 CURLOPT_POST 启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。 CURLOPT_RETURNTRANSFER 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 CURLOPT_VERBOSE 启用时会汇报所有的信息,存放在STDERR或指定的CURLOPT_STDERR中。 CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。 CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。 CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。 CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。 CURLOPT_PORT 用来指定连接端口。(可选项) CURLOPT_COOKIE 设定HTTP请求中”Cookie: “部分的内容。多个cookie用分号分隔,分号后带一个空格(例如, [...]
工作观 一切的基础:耐心。 对工作目标有着深刻的理解。 学是为了用,首当学习能解决问题的知识,再扩展其他方面或领域,曰:兴趣。 问题总有解决办法,看你有没有办法找到最合适的。 创新是低效的,给点儿耐心。 创作观 写代码时时刻设想你就是将来要来维护这坨代码的人。 方法论 只证不悟,知识没有转化为隐性的经验来指导后续活动; 而只悟不证,则是盲目的模仿和跟从,以期望隐性的知识能够不经过自身实践而转化为自我的经验。 所以只有既证又悟才能够真正提升自我并创造价值。 把它学到手:信息 琢磨理解 实践操作 总结归纳 解决实际问题。 多方向多角度,各个属性,各种情形。 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。 “猜和验证”是好办法; 自控 把你当时因为一时情绪想要做的事情记下来。 不去理会那些打搅你的情绪波动。 无论在什么环境中,时刻注意那些熟悉的东西有什么变化。 思考的方法 从不同的角度去看问题,发现别人从未想到(或还没有公开发表过)的新论点。 具体化,当爱因斯坦遇到一个难题时,他总是使用尽可能多的方法来展示问题,包括使用多种图表。 亲自动手,天才们最大的特点是高生产率。 做新组合,将所有的看法、想法和想象以不同的方式重新组合。 找出彼此之间的关系,将不类似的事物联系起来。 反向思维。假如你将物质的对立面放在一起来思考,那么你的思维运动就可以上升到一个新的高度。 形象思维。亚里士多德认为比喻是天才的一种象征,一个能够看到两种不同领域的相似之处的人是天才,再能把这些相似之处联系起来是需要特殊天赋的。 增强应变能力。每当我们尝试做什么事失败后,我们就该做别的。这就是发明创造的第一原则。
基本概念 MVC DAO(Data Access Object) Very generic term that doesn’t infer any specific implementation. Simply what it says on the tin, an object that accesses data. ORM(Object/Relation Mapping) The mapping of object data to relational database data. The database data could be a single row, a single table, multiple rows in a single table, multiple [...]
浏览器是怎么解析CSS的呢? 首先让我们来认识一下CSSStyleDeclaration,DOM CSS的一员,也是分量最重的一个。所有的CSS都会被解析到CSSStyleDeclaration中,你可以通过它去读取CSS属性更改CSS属性。 无论你在哪里写CSS,无论你写了什么CSS,浏览器最后都会解析成一个或数个styleSheet,每个styleSheet又包含一个或多个 cssRule,每个cssRule又包含零个或一个或多个style(即CSSStyleDeclaration)。这些 CSSStyleDeclaration会和其他styleSheet中CSSStyleDeclaration以及相应标签中的 CSSStyleDeclaration进行比较,根据权重的不同,最后生成computedStyle即最终我们所看到的样式。 举个例子: <style type=”text/css”> @import url(print.css); b{color:yellow;} </style> 上面的代码就会生成一个styleSheet,这个styleSheet中有两个cssRule,分别是“@import url(print.css);”和“b{color:yellow;}”,第一个cssRule中没有style(会有一个子styleSheet), 第二个cssRule中包含一个style是“color:yellow;”。 注意:每个style标签都会生成一个独立的styleSheet。 另外需要说明的一点,也是容易混淆的一点: 其他标签中的style属性中的CSS不能看作是真正的CSS本身,如:<b style=”color:red”></b>,它只是标签style属性的数值,浏览器会根据这个值去更改真正的CSSStyleDeclaration。 其实大家平时经常在和CSSStyleDeclaration打交道,比如:this.style.display=”none” ,这条JS通常我们会简单的理解成更改this对象的style属性中的值,即style=”display:none”,事实上没那么简单。 从底层来说,这条JS是用来更改CSSStyleDeclaration的,这条语句中的style实际就是CSSStyleDeclaration,浏 览器首先通过这条JS更改CSSStyleDeclaration中display的值,然后CSSStyleDeclaration的cssText值 会跟着被修改,最后才传达到this标签的style属性。 这也是为什么this.style.color=”red!important”无法更改color值的原因,!important只是在生成 computedStyle时比较CSS权重用的,CSSStyleDeclaration中的color值不会有!important的,如果给它了, 会被认为是非法值,因此this.style.color=”red!important”是无效的。 更改CSSStyleDeclaration可以有多种方式,上面的this.style.display=”none”就是一种,也是最常用的最简单的 一种,在某些特殊情况下我们也可以这样来改变:this.style.cssText=”display:none” 或者 this.setAttribute(”style”,”display:none”) 。 这里this.setAttribute(”style”,”display:none”)又是另外一种情况了,它先去更改style属性的值,然后再更改CSSStyleDeclaration的值。
用户名和密码 PASSWORD加密函数 2种方法创建账号: 使用GRANT语句 直接操作MySQL授权表 一般应使用GRANT和REVOKE语句来设置、修改和移除MySQL账户。 root账户必须有mysql数据库的INSERT权限和RELOAD管理权限。 在user表Host值的指定方法: Host值可以是主机名或IP号,或’localhost’指出本地主机。 你可以在Host列值使用通配符字符“%”和“_”。 Host值’%’匹配任何主机名,空Host值等价于’%’。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%’的Host值与所有主机名匹配,而’%.mysql.com’匹配mysql.com域的所有主机。 如果有多个匹配,服务器必须选择使用哪个条目。按照下述方法解决问题: 服务器在启动时读入user表后进行排序。 然后当用户试图连接时,以排序的顺序浏览条目 服务器使用与客户端和用户名匹配的第一行。 当服务器读取表时,它首先以最具体的Host值排序。主机名和IP号是最具体的。’%’意味着“任何主机”并且是最不特定的。有相同Host值的条目首先以最具体的User值排序(空User值意味着“任何用户”并且是最不特定的)。 CURRENT_USER()函数。它返回user_name@host_name格式的值,说明User和Host 值匹配user表记录。 这些权限可以来自user、db、host、tables_priv或columns_priv表。 user表权限是超级用户权限。 db和host表授予数据库特定的权限。 tables_priv和columns_priv表授予表和列特定的权限。
参考 http://www.laruence.com/2007/12/11/122.html 帮助 perldoc -f use perldoc -f sort perldoc -q sort perldoc File::Find 零碎儿 $变量 @数组 %关联数组 打印数组 print “@array\n”; for $row (@array) {print “@$row\n”;} #!/usr/bin/perl -w $a = “test”; print “\$a is $a \n”; @b = (“chrome”,”v8″); print “\@b is @b \n”; ($a) = @b; #print $a; %c = (“k1″, “v1″, “k2″,”v2″); @e [...]
名词解释: GBK GB2312 GB18030 区位码 Big5 CJK UNICODE UTF-8 UTF-16 UCS BOM 内码 码页code page 码位 背景知识 。。。。。。。 实践 解决vim编码 默认值 Encoding 对 Vim 内部运行机制的设定 与系统当前locale相同 Fileencoding vim写入文件时采用的编码类型 vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。 Termencoding 输出到客户终端(Term)采用的编码类型 默认空值 系统当前locale、文件本身编码以及自动编码识别、客户运行vim的终端所使用的编码类型 :edit ++enc=cp936 临时改变vim运行的locale环境,方法是以LANG=zh_CN vim abc.txt 编码包含顺序 Gb2312àGBK(GB13000)àGB18030 Unicode用统一的编号来索引目前已知的全部的符号。而字符集则是这些符号的编码方式,或者说是在网络传输,计算机内部通信的时候,对于不同字 符的表达方式,Unicode是一个静态的概念,字符集是一个动态的概念,是每一个字符传递或传输的具体形式。就像 Unicode编号U59D0是代表姐姐的“姐”字,但是具体的这个字是用两个字节表示,三个字节,还是四个字节表示,是字符集的问题。 zh_CN.GB2312到底是在说什么? Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: [语言[_地域][.字符集] [@修正值] 。 在en_US的locale定义中,并没有定义汉字,所以汉字不是有效字符。所以如果要输入中文必须使用支持中文的locale,也就是zh_XX,如zh_CN,zh_TW,zh_HK等等。 LC_ALL>LC_*>LANG
零碎儿 查看socket:netstat -ln|grep mysql 应保证MySQL数据库目录有文件“user.MYD”。否则,执行mysql_install_db脚本。 升级到较新的版本,运行了mysql_fix_privilege_tables脚本。 记住客户端程序使用选项文件或环境变量中指定的连接参数。 使用–host=127.0.0.1选项来明确命名服务器主机。这样将通过TCP/IP协议来连接本地mysqld服务器。 /home/work/thirdparty/mysql5/bin/mysqladmin –root –p shutdown /home/work/thirdparty/mysql5/bin/mysqld_safe & 查看超时配置:Show variables; show variables like ‘%timeout%’; 查看数据库状态:show status; show status where variable_name like ‘%abort%’; show status like ‘%slow_queries%’; 在终端中记录操作日志: mysql> \T /tmp/log Mysql 的 binlog 二进制日志的主要目的是在恢复时能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。 二进制日志还用于在主复制服务器上记录所有将发送给从服务器的语句。 可以用RESET MASTER语句删除所有二进制日志文件,或用PURGE MASTER LOGS只删除部分二进制文件。 Mysql的timeout设置 1、在db_mysql中的function Db中的return $this->connection;之前加上下面的语句即可解决这个问题: mysql_query(“set wait_timeout 28800″, $this->connection); 2、show variables [...]