當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby CGI.new用法及代碼示例

本文簡要介紹ruby語言中 CGI.new 的用法。

用法

new(tag_maker) { block }
new(options_hash = {}) { block }

創建一個新的 CGI 實例。

tag_maker

這與使用值為 { :tag_maker => tag_maker }options_hash 表單相同。請注意,建議使用 options_hash 表單,因為它還允許您指定您將接受的字符集。

options_hash

識別三個選項的 Hash

:accept_charset

指定接收到的查詢字符串的編碼。如果省略,則使用@@accept_charset。如果編碼無效,將引發 CGI::InvalidEncoding

例子。假設@@accept_charset是“UTF-8”

未指定時:

cgi=CGI.new      # @accept_charset # => "UTF-8"

當指定為 “EUC-JP” 時:

cgi=CGI.new(:accept_charset => "EUC-JP") # => "EUC-JP"
:tag_maker

String 指定要使用的 HTML 生成方法的版本。如果未指定,則不會加載任何 HTML 生成方法。

支持以下值:

“html3”

HTML 3.x

“html4”

HTML 4.0

“html4Tr”

HTML 4.0 過渡

“html4Fr”

帶有框架集的 HTML 4.0

“html5”

HTML 5

:max_multipart_length

指定多部分數據的最大長度。可以是 Integer 標量或 lambda,將在解析請求時進行評估。這允許在確定是否接受多部分數據時設置更複雜的邏輯(例如,谘詢注冊用戶上傳許可)

默認為 128 * 1024 * 1024 字節

cgi=CGI.new(:max_multipart_length => 268435456) # simple scalar

cgi=CGI.new(:max_multipart_length => -> {check_filesystem}) # lambda
block

如果提供,則在遇到無效編碼時調用該塊。例如:

encoding_errors={}
cgi=CGI.new(:accept_charset=>"EUC-JP") do |name,value|
  encoding_errors[name] = value
end

最後,如果 CGI 對象不是在標準的 CGI 調用環境中創建的(即在其環境中找不到REQUEST_METHOD),那麽它將以“offline”模式運行。在這種模式下,它從命令行或(失敗)從標準輸入讀取其參數。否則,cookie 和其他參數會從標準 CGI 位置自動解析,該位置因 REQUEST_METHOD 而異。

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 CGI.new。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。