diff --git a/reference/http/functions/header.xml b/reference/http/functions/header.xml index f01ae21710..bb5e824228 100644 --- a/reference/http/functions/header.xml +++ b/reference/http/functions/header.xml @@ -1,13 +1,13 @@ - + header - Send a raw HTTP header + 向浏览器发送一个 HTTP 头部信息 - Description + 描述 intheader stringstring @@ -15,17 +15,14 @@ inthttp_reponse_code - header is used to send raw - HTTP headers. See the HTTP/1.1 specification for more - information on HTTP headers. + header 函数用来发送一个 HTTP + 头部信息到客户端的浏览器。有关 HTTP 头部信息的更多内容参见官方文档 + HTTP/1.1 specification - The optional replace parameter indicates - whether the header should replace a previous similar header, or - add a second header of the same type. By default it will replace, - but if you pass in &false; as the second argument you can force - multiple headers of the same type. For example: + 可选参数 replace + 用来表示当出现两个相似的头部信息时,是替换前一个相同的头部信息还是增加一个相同的头部信息。默认为替换,如果你将其设为 + &false; 则可以多次发送相同的头部信息。例如: - The second optional http_response_code force the - HTTP response code to the specified value. (This parameter is available - in PHP 4.3.0 and higher.) + 第二个可选参数 http_response_code 表示 HTTP + 的头部信息的代码。(此参数在PHP 4.3.0 被加入。) - There are two special-case header calls. The first is a header - that starts with the string "HTTP/" (case is not - significant), which will be used to figure out the HTTP status - code to send. For example, if you have configured Apache to + 头部信息的格式有两种形式。一种情况是以字符 “HTTP/” (不区分大小写)开头的,which will be used to figure out the HTTP status + code to send。例如,如果你if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that your script generates the proper status code. @@ -61,6 +55,7 @@ header('WWW-Authenticate: NTLM', FALSE); + HTTP 头部信息经常首先被发送到客户端, The HTTP status header line will always be the first sent to the client, regardless of the actual header call beeing the first or not. The status may be overridden @@ -70,9 +65,8 @@ header('WWW-Authenticate: NTLM', FALSE); - In PHP 3, this only works when PHP is compiled as an Apache - module. You can achieve the same effect using the - Status header. + 在 PHP 3 中,此函数只在 PHP 以 Apache 的模块化运行的时候有效。你可以使用 Status + 来达到相同的效果。 - The second special case is the "Location:" header. Not only does + 第二种特殊情况是以 "Location:" 开头的信息。Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless some 3xx status code has already been set. @@ -104,13 +98,11 @@ exit; /* Make sure that code below does - HTTP/1.1 requires an absolute URI as argument to + HTTP/1.1 标准需要一个绝对地址的 URI 做为 Location: - including the scheme, hostname and absolute path, but - some clients accept relative URIs. You can usually use - $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] - and dirname to make an absolute URI from a - relative one yourself: + 的参数, 但有一些客户端支持虚拟的路径。你通常可以使用 + $_SERVER['HTTP_HOST']$_SERVER['PHP_SELF'] + 及 dirname 函数来自己获取所需要的绝对路径: - PHP scripts often generate dynamic content that must not be cached - by the client browser or any proxy caches between the server and the - client browser. Many proxies and clients can be forced to disable - caching with - + PHP 脚本通常是动态改变的。可有些客户端或一些代理服务器会把一些浏览过的内容给缓冲起来,这样您更新的脚本就不能被客户端及时的发现,你可以通过发送一些类似下面例子中的头部信息来禁止他们缓存你的网页。 + - You may find that your pages aren't cached even if you don't - output all of the headers above. There are a number of options + 你可能会发现即使你没有把上边的代码全部输出你的网页也没有被缓冲起来。这是因为一些用户在他们的浏览器的设置There are a number of options that users may be able to set for their browser that change its default caching behavior. By sending the headers above, you should override any settings that may otherwise cause the output of your script to be cached. - Additionally, session_cache_limiter and - the session.cache_limiter configuration + 另外,session_cache_limiter 和 + session.cache_limiter configuration setting can be used to automatically generate the correct caching-related headers when sessions are being used. diff --git a/reference/http/functions/headers-sent.xml b/reference/http/functions/headers-sent.xml index 6f4d49f474..e2b349a2e4 100644 --- a/reference/http/functions/headers-sent.xml +++ b/reference/http/functions/headers-sent.xml @@ -1,39 +1,35 @@ - + headers_sent - Returns &true; if headers have been sent + 测试头部信息是否已经被发送,如果是,返回 &true; - Description + 描述 boolheaders_sent string&file int&line - This function returns &true; if the HTTP headers have already been - sent, &false; otherwise. You can't add any more header lines using - the header function once the header block has - already been sent. Using this function you can at least prevent - getting the "Duplicate headers ..." error messages. + 这个函数测试脚本中头部信息是否已经发送,如果是则返回 &true; 否则返回 &false;。一旦头部信息已经被发送,你将不能再使用 header + 函数来发送其它的头部信息。使用此函数可以使你最大限度的避免类似 "Duplicate headers ..." 的错误信息。 - The function will return the php source file and line number where - output started in the optional file and - line parameters if these are given. + 如果可先参数 file + 及 line + 被指定,则函数会返回指定文件指定行数起头部信息的发送情况。 - file and line where - added for PHP 4.3.0. + file and line + 参数在 PHP 4.3.0 版本中被加入。 - See also header for a more detailed discussion - of the matters involved. + 更多细节的讨论参见 header diff --git a/reference/http/functions/setcookie.xml b/reference/http/functions/setcookie.xml index 3d583109a5..dadd172226 100644 --- a/reference/http/functions/setcookie.xml +++ b/reference/http/functions/setcookie.xml @@ -1,13 +1,13 @@ - + setcookie - Send a cookie + 发送一个 cookie 信息 - Description + 描述 booleansetcookie stringname @@ -18,81 +18,65 @@ intsecure - setcookie defines a cookie to be sent along - with the rest of the HTTP headers. Like other headers, cookies - must be sent before any output from your - script (this is a protocol restriction). This requires that you - place calls to this function prior to any output, including - <html> and <head> tags - as well as any whitespace. If output exists prior to calling this - function, setcookie will fail and return &false;. - If setcookie successfully runs, it will return - &true;. This does not indicate whether the user accepted the cookie. + setcookie 函数用来建立一个新的 cookie 的信息。和其它头部信息一样,cookies + 必须要输出在文件的最前面,也就意味着在其之前,你不能输出任何字符 + (这是规定)。包括 + <html><head> + 标签以及一些空格。如果这些标签在使用 setcookie 函数前输出,函数运行则会失败并返回 &false;。 + 只要 setcookie 函数成功运行,不管该信息是否被用户接受,都会返回 &true;。 - All the arguments except the name argument - are optional. If only the name argument is present, the cookie - by that name will be deleted from the remote client. You may - also replace any argument with an empty string - ("") in order to skip that - argument. The expire and - secure arguments are integers and cannot - be skipped with an empty string. Use a zero - (0) instead. The - expire argument is a regular Unix time - integer as returned by the time or - mktime functions. The - secure indicates that the cookie should - only be transmitted over a secure HTTPS connection. + 除了 name 以外,其它所有参数都是可选的。如果只有 name + 参数,这将会删除客户端名称为 name + 的 cookie。当然,为了跳过某些参数的设定,你可以为一些参数赋空字符 + ("")。但参数 + expire 及 + secure 的类型应该为整数 (integers) 并且不能被赋为空字符。你可以用 0 + 来代替(0)。参数 + expire 是一个 Unix 的时间戳,可以用 + timemktime + 函数来获得。secure 参数表明该 cookie + 只在安全 HTTP 连接下才被发送。 - Once the cookies have been set, they can be accessed on the next page load - with the $_COOKIE or - $HTTP_COOKIE_VARS arrays. Note, - autoglobals - such as $_COOKIE became available in PHP - 4.1.0. - $HTTP_COOKIE_VARS has existed since PHP 3. + 当 cookies 被设置后,便可以在其它页面通过 $_COOKIE + 或 $HTTP_COOKIE_VARS 数组取得其值。需要注意的是,autoglobals + 的 $_COOKIE 形式适用于 PHP + 4.1.0 或更高版本。而 + $HTTP_COOKIE_VARS 则从 PHP 3 起就可以使用. - Common Pitfalls: + 需要注意的几点: - Cookies will not become visible until the next loading of a page that - the cookie should be visible for. To test if a cookie was successfully - set, check for the cookie on a next loading page before the cookie - expires. Expire time is set via the expire - parameter. + Cookies 不会在你设置它的本页生效、要测试一个 cookie 是否被成功的设定,你可以在其到期之前通过另外一个页面来访问其值。过期时间是通过参数 + expire 来设置的。 - Cookies must be deleted with the same parameters as they were set with. + Cookies 将会被与其同名的后设定的 cookie 所覆盖。 - Cookies names can be set as array names and will be available to your - PHP scripts as arrays but seperate cookies are stored on the users - system. Consider explode or - serialize to set one cookie with multiple names - and values. + 在实际运用中,你可以把 Cookies 的名称设置成一个数组,但是数组 cookie 中的每个元素的值将会被单独保存在用户的系统中。你可以试着用explode + 或 serialize 函数来把多个 cookie 值写入到一个 cookie 文件中。 - In PHP 3, multiple calls to setcookie in the same - script will be performed in reverse order. If you are trying to - delete one cookie before inserting another you should put the - insert before the delete. In PHP 4, multiple calls to - setcookie are performed in the order called. + 在 PHP 3 中,在同一个 PHP 脚本中多次使用 setcookie + 来设置 cookie,将会按照倒序的方式来分别执行,如果你想要在插入另外一个 cookie + 前删除一个 cookie,你必须先插入然后再删除。在 PHP 4 里,多次调用 + setcookie 则是按照顺序来执行的。 - Some examples follow how to send cookies: + 下面一些例子说明了如何发送 cookies: - <function>setcookie</function> send examples + <function>setcookie</function> sent examples - When deleting a cookie you should assure that the expiration date - is in the past, to trigger the removal mechanism in your browser. - Examples follow how to delete cookies sent in previous example: + 一个过期的 cookie 将会被自动删除。例子说明了如何删除一个 cookies: <function>setcookie</function> delete examples @@ -118,11 +100,7 @@ setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1); - Note that the value portion of the cookie will automatically be - urlencoded when you send the cookie, and when it is received, it - is automatically decoded and assigned to a variable by the same - name as the cookie name. To see the contents of our test - cookie in a script, simply use one of the following examples: + 要注意的是 cookie 的值在发送的时候会被自动的编码并保存,而当你读取它的时候,它又会被自动的解码并自动把自己赋值给与自己同名的一个变量。你可以通过下面简单的例子来看到: - You may also set array cookies by using array notation in the - cookie name. This has the effect of setting as many cookies as - you have array elements, but when the cookie is received by your - script, the values are all placed in an array with the cookie's - name: + 你也可以设置一个数组来存放 cookie,把许多名称不同的 cookie 放到一个数组中存放。这样你在接收 cookie + 的时候只需要要获取一个数组: - For more information on cookies, see Netscape's cookie - specification at &spec.cookies;. + 关于 cookies 更多的介绍,可以参考网景公司的 cookies 说明书 + &spec.cookies;. - Microsoft Internet Explorer 4 with Service Pack 1 applied does - not correctly deal with cookies that have their path parameter - set. - - - Netscape Communicator 4.05 and Microsoft Internet Explorer 3.x - appear to handle cookies incorrectly when the path and time - are not set. + Netscape Communicator 4.05 及 Microsoft Internet Explorer 3.x 在 cookie 的路径和时间没有设置的情况下会出现一些问题。 diff --git a/reference/http/reference.xml b/reference/http/reference.xml index e3bc5f8292..9139cfdcf0 100644 --- a/reference/http/reference.xml +++ b/reference/http/reference.xml @@ -1,15 +1,14 @@ - + - HTTP functions + HTTP 相关函数 HTTP
&reftitle.intro; - These functions let you manipulate the output sent back to the - remote browser right down to the HTTP protocol level. + 这些函数可以让你依据 HTTP 标准协议向客户端浏览器发送头部信息。