linux

时间

Posted by pangyt on 2011年08月2日 at 11:02 下午

GMT(Greenwich Mean Time,格林威治标准时间) UTC(Universal Time/Temps Cordonné 世界标准时间) CST(Central Standard Time 國家標準時間,一說中原標準時間); 中国标准时间(China Standard Time) GMT + 8 = UTC + 8 = CST

NAT穿透

Posted by pangyt on 2011年08月2日 at 11:02 下午

Inside Local Address(内部本地地址) 一个网络内部分配给网上主机的IP地址,此地址通常不是Internet上的合法地址。 inside Global Address(内部全局地址) 用来代替一个或者多个内部本地IP地址的、对外的、Internet上合法的IP地址。 Outside Local Address(外部本地地址) 一个外部主机相对于内部网所用的IP地址。此地址需要是Internet上合法的地址,但是从内部网可以进行路由的地址空间中进行分配的。 Outside Global Address(外部全局地址) 主机拥有者分配给在外部网上主机的IP地址。此地址是从一个从全局可路由的地址或网络空间中分配的。

【转】PHP扩展编写入门

Posted by pangyt on 2011年06月27日 at 11:22 下午

http://terrylee.me/blog/post/2011/02/13/php-extension-part1.aspx系列,即可上手。

【转】Autotools: Autoconf, Automake and Libtool指南第一章(译文)

Posted by pangyt on 2011年06月26日 at 8:06 下午

【转】http://hi.baidu.com/zmjdx/blog/item/94aa05a8d2b9afbaca130c58.html 1、 autoscan autoscan是用来扫描源代码目录生成configure.scan文件的。autoscan可以用目录名做为参数,但如果你不使用参数的 话,那么autoscan将认为使用的是当前目录。autoscan将扫描你所指定目录中的源文件,并创建configure.scan文件。 2、 configure.scan configure.scan包含了系统配置的基本选项,里面都是一些宏定义。我们需要将它改名为configure.in 3、 aclocal aclocal是一个perl 脚本程序。aclocal根据configure.in文件的内容,自动生成aclocal.m4文件。aclocal的定义是:“aclocal – create aclocal.m4 by scanning configure.ac”。 4、 autoconf autoconf是用来产生configure文件的。configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生合适的Makefile,从而可以使你的源代码能在不同的操作系统平台上被编译出来。 configure.in文件的内容是一些宏,这些宏经过autoconf 处理后会变成检查系统特性、环境变量、软件必须的参数的shell脚本。configure.in文件中的宏的顺序并没有规定,但是你必须在所有宏的最前 面和最后面分别加上AC_INIT宏和AC_OUTPUT宏。 在configure.in中: #号表示注释,这个宏后面的内容将被忽略。 AC_INIT(FILE) 这个宏用来检查源代码所在的路径。 AM_INIT_AUTOMAKE(PACKAGE, VERSION) 这个宏是必须的,它描述了我们将要生成的软件包的名字及其版本号:PACKAGE是软件包的名字,VERSION是版本号。当你使用make dist命令时,它会给你生成一个类似helloworld-1.0.tar.gz的软件发行包,其中就有对应的软件包的名字和版本号。 AC_PROG_CC 这个宏将检查系统所用的C编译器。 AC_OUTPUT(FILE) 这个宏是我们要输出的Makefile的名字。 我们在使用automake时,实际上还需要用到其他的一些宏,但我们可以用aclocal 来帮我们自动产生。执行aclocal后我们会得到aclocal.m4文件。 产生了configure.in和aclocal.m4 两个宏文件后,我们就可以使用autoconf来产生configure文件了。 5、 Makefile.am Makefile.am是用来生成Makefile.in的,需要你手工书写。Makefile.am中定义了一些内容: AUTOMAKE_OPTIONS 这个是automake的选项。在执行automake时,它会检查目录下是否存在标准GNU软件包中应具备的各种文件,例如AUTHORS、ChangeLog、NEWS等文件。我们将其设置成foreign时,automake会改用一般软件包的标准来检查。 bin_PROGRAMS 这个是指定我们所要产生的可执行文件的文件名。如果你要产生多个可执行文件,那么在各个名字间用空格隔开。 helloworld_SOURCES 这个是指定产生“helloworld”时所需要的源代码。如果它用到了多个源文件,那么请使用空格符号将它们隔开。比如需要 helloworld.h,helloworld.c那么请写成helloworld_SOURCES= helloworld.h helloworld.c。 如果你在bin_PROGRAMS定义了多个可执行文件,则对应每个可执行文件都要定义相对的filename_SOURCES。 LIBS 这个用来指定链接的程序库。如LIBS [...]

vim 和 php手册的结合

Posted by pangyt on 2010年11月30日 at 11:09 下午

转载:http://www.laruence.com/2010/08/18/1718.html 另一种更简单的方法 Download http://planetxml.de/php_manual.txt and put it into your vim/doc folder, then run :helptags [path to vim/doc]. Documentation for PHP functions can be shown by pressing K while the cursor is on a function name. The manual was created using a modified version of script found at http://www.phpvolcano.com/articles/manual/index.php.

vim taglist插件

Posted by pangyt on 2010年11月30日 at 10:43 下午

转自[http://apps.hi.baidu.com/share/detail/6312839] 在taglist窗口中,可以使用下面的快捷键: <CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样 o             在一个新打开的窗口中显示光标下tag <Space>       显示光标下tag的原型定义 u             更新taglist窗口中的tag s             更改排序方式,在按名字排序和按出现顺序排序间切换 x             taglist窗口放大和缩小,方便查看较长的tag +             打开一个折叠,同zo -             将tag折叠起来,同zc *             打开所有的折叠,同zR =             将所有tag折叠起来,同zM [[            跳到前一个文件 ]]            跳到后一个文件 q             关闭taglist窗口 <F1>          显示帮助

php-curl-cookie相关

Posted by pangyt on 2010年10月28日 at 3:55 下午

CURLOPT_HEADERFUNCTION 设置一个回调函数,这个函数有两个参数,第一个是cURL的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。 curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); CURLOPT_COOKIESESSION 启用时curl会仅仅传递一个session cookie,忽略其他的cookie,默认状况下cURL会将所有的cookie返回给服务端。session cookie是指那些用来判断服务器端的session是否有效而存在的cookie。 To collect cookies recieved with a request, set CURLOPT_COOKIEJAR “cookieFileName”. Then use CURLOPT_COOKIEFILE “cookieFileName” to recall them in subsequent transactions. curl_setopt($ch, CURLOPT_COOKIEJAR, “cookie.txt”); curl_setopt($ch, CURLOPT_COOKIEFILE, “cookie.txt”); Sometimes you can’t use CURLOPT_COOKIEJAR and CURLOPT_COOKIEFILE becoz of the server php-settings(They say u may grab any files from server [...]

记录日志的学问

Posted by pangyt on 2010年10月19日 at 11:07 下午

常犯错误 技巧 错误日志输出的信息要完备但是不冗长。完备信息:为什么出错 + 出错时操作对象 + 出错误时的参数。 TRACE日志用于打印各个分支的处理情况,给出提示性信息,可以了解各个分支的工作情况,只是重要性没有NOTICE日志高。 DEBUG日志的格式和内容完全由实现者自己确定,DEBUG需要给出最详细的日志信息,争取避免使用GDB来确定一些需要的信息。

php stream

Posted by pangyt on 2010年10月19日 at 9:39 下午

定义:Stream Contexts A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc…). 常用法 resource stream_context_create ([ array $options [, array $params ]] ) array( [...]

windows的dos命令基础

Posted by pangyt on 2010年10月19日 at 11:07 上午