八 11
2
GMT(Greenwich Mean Time,格林威治标准时间)
UTC(Universal Time/Temps Cordonné 世界标准时间)
CST(Central Standard Time 國家標準時間,一說中原標準時間); 中国标准时间(China Standard Time)
GMT + 8 = UTC + 8 = CST
八 11
2
Inside Local Address(内部本地地址) 一个网络内部分配给网上主机的IP地址,此地址通常不是Internet上的合法地址。
inside Global Address(内部全局地址) 用来代替一个或者多个内部本地IP地址的、对外的、Internet上合法的IP地址。
Outside Local Address(外部本地地址) 一个外部主机相对于内部网所用的IP地址。此地址需要是Internet上合法的地址,但是从内部网可以进行路由的地址空间中进行分配的。
Outside Global Address(外部全局地址) 主机拥有者分配给在外部网上主机的IP地址。此地址是从一个从全局可路由的地址或网络空间中分配的。
六 11
27
http://terrylee.me/blog/post/2011/02/13/php-extension-part1.aspx系列,即可上手。
【转】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 += -lpthread,指定链接pthread库。
6、 automake
我们使用automake –add-missing来产生Makefile.in。
选项–add-missing的定义是“add missing standard files to package”,它会让automake加入一个标准的软件包所必须的一些文件。
我们用automake产生出来的Makefile.in文件是符合GNU Makefile惯例的,接下来我们只要执行configure这个shell 脚本就可以产生合适的 Makefile 文件了。
7、 Makefile
在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:
make
根据Makefile编译源代码,连接,生成目标文件,可执行文件。
make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
make install
将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
make dist
产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。
它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。
===============================================
helloworld-1.0.tar.gz is ready for distribution
===============================================
make distclean
类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。
[转]http://blog.csdn.net/dog_in_yellow/archive/2008/01/13/2041078.aspx
http://blog.csdn.net/dog_in_yellow/archive/2008/01/13/2041075.aspx
十一 10
30
转载: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.
十一 10
30
转自[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> 显示帮助
十 10
28
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 using these options). Here is the solution
1)Don’t use CURLOPT_FOLLOWLOCATION
2)Use curl_setopt($ch, CURLOPT_HEADER, 1)
3)Grab from the header cookies like this:
preg_match_all(‘|Set-Cookie: (.*);|U’, $content, $results);
$cookies = implode(‘;’, $results[1]);
4)Set them using curl_setopt($ch, CURLOPT_COOKIE, $cookies);
十 10
19
常犯错误
技巧
错误日志输出的信息要完备但是不冗长。完备信息:为什么出错 + 出错时操作对象 + 出错误时的参数。
TRACE日志用于打印各个分支的处理情况,给出提示性信息,可以了解各个分支的工作情况,只是重要性没有NOTICE日志高。
DEBUG日志的格式和内容完全由实现者自己确定,DEBUG需要给出最详细的日志信息,争取避免使用GDB来确定一些需要的信息。
十 10
19
定义: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(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
支持的协议
文件系统
Socket
HTTP 和 HTTPS
FTP 和 FTPS
PHP 输入/输出流
压缩流
Glob
Phar
Secure Shell 2
Rar
音频流
处理交互式流
支持的option:Context options and parameters
Socket context option listing
HTTP context option listing
FTP context option listing
SSL context option listing
CURL context option listing
Phar context option listing
Context parameter listing
十 10
19