当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。