ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Ruby CGI方法 以下为CGI类的方法列表: | 序号 | 方法描述 | | --- | --- | | **CGI::new([ level="query"])** | 创建 CGI 对象。query可以是以下值: **query:** 没有 HTML 生成输出 **html3:** HTML3.2 **html4:** HTML4.0 Strict **html4Tr:** HTML4.0 Transitional **html4Fr:** HTML4.0 Frameset | | **CGI::escape( str)** | 使用 URL 编码来转义字符串 | | **CGI::unescape( str)** | 对通过 escape() 编码的字符串进行解码。 | | **CGI::escapeHTML( str)** | 编码 HTML 特殊字符, 包括: & < >。 | | **CGI::unescapeHTML( str)** | 解码 HTML 特殊字符, 包括: & < >。 | | **CGI::escapeElement( str[, element...])** | 在指定的 HTML 元素中编码 HTML 特殊字符。 | | **CGI::unescapeElement( str, element[, element...])** | 在指定的 HTML 元素中解码 HTML 特殊字符。 | | **CGI::parse( query)** | 解析查询字符串,并返回包含哈希的 键=》值 对。 | | **CGI::pretty( string[, leader=" "])** | 返回整齐的HTML格式。 如果指定了 _leader_ ,它将写入到每一行的开头。 _leader_ 默认值为两个空格。 | | **CGI::rfc1123_date( time)** | 根据 RFC-1123 来格式化时间 (例如, Tue, 2 Jun 2008 00:00:00 GMT)。 | ## CGI 实例化方法 以下实例中我们将 CGI::new 的对象赋值给 c 变量,方法列表如下: | 序号 | 方法描述 | | --- | --- | | **c[ name]** | 返回一个数组,包含了对应字段名为 _name_ 的值。 | | **c.checkbox( name[, value[, check=false]]) c.checkbox( options)** | 返回 HTML 字符串用于定义 checkbox 字段。标签的属性可以以一个哈希函数作为参数传递。 | | **c.checkbox_group( name, value...) c.checkbox_group( options)** | >返回 HTML 字符串用于定义 checkbox 组。标签的属性可以以一个哈希函数作为参数传递。 | | **c.file_field( name[, size=20[, max]]) c.file_field( options)** | 返回定义 file 字段的HTML字符串。 | | **c.form([ method="post"[, url]]) { ...} c.form( options)** | 返回定义 form 表单的HTML字符串。 如果指定了代码块,将作为表单内容输出。标签的属性可以以一个哈希函数作为参数传递。 | | **c.cookies** | 返回 CGI::Cookie 对象,包含了cookie 中的键值对。 | | **c.header([ header])** | 返回 CGI 头部的信息。如果 header 参数是哈希值,其键 - 值对,用于创建头部信息。 | | **c.hidden( name[, value]) c.hidden( options)** | 返回定义一个隐藏字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.image_button( url[, name[, alt]]) c.image_button( options)** | 返回定义一个图像按钮的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.keys** | 返回一个数组,包含了表单的字段名。 | | **c.key?( name) c.has_key?( name) c.include?( name)** | 如果表单包含了指定的字段名返回 true。 | | **c.multipart_form([ url[, encode]]) { ...} c.multipart_form( options) { ...}** | 返回定义一个多媒体表单(multipart)的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.out([ header]) { ...}** | 生成 HTML 并输出。使用由块的输出来创建页面的主体生成的字符串。 | | **c.params** | 返回包含表单字段名称和值的哈希值。 | | **c.params= hash** | 设置使用字段名和值。 | | **c.password_field( name[, value[, size=40[, max]]]) c.password_field( options)** | 返回定义一个password字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.popup_menu( name, value...) c.popup_menu( options) c.scrolling_list( name, value...) c.scrolling_list( options)** | 返回定义一个弹出式菜单的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.radio_button( name[, value[, checked=false]]) c.radio_button( options)** | 返回定义一个radio字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.radio_group( name, value...) c.radio_group( options)** | 返回定义一个radio按钮组的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.reset( name[, value]) c.reset( options)** | 返回定义一个reset按钮的HTML字符串。 标签的属性可以以一个哈希函数作为参数传递 | | **c.text_field( name[, value[, size=40[, max]]]) c.text_field( options)** | 返回定义一个text字段的HTML字符串。标签的属性可以以一个哈希函数作为参数传递。 | | **c.textarea( name[, cols=70[, rows=10]]) { ...} c.textarea( options) { ...}** | 返回定义一个textarea字段的HTML字符串。 如果指定了块,代码块输出的字符串将作为 textarea 的内容。 标签的属性可以以一个哈希函数作为参数传递。 | ## HTML 生成方法 你可以再 CGI 实例中使用相应的 HTML 标签名来创建 HTML 标签,实例如下: ``` #!/usr/bin/ruby require "cgi" cgi = CGI.new("html4") cgi.out{ cgi.html{ cgi.head{ "\n"+cgi.title{"This Is a Test"} } + cgi.body{ "\n"+ cgi.form{"\n"+ cgi.hr + cgi.h1 { "A Form: " } + "\n"+ cgi.textarea("get_text") +"\n"+ cgi.br + cgi.submit } } } } ``` ## CGI 对象属性 你可以再 CGI 实例中使用以下属性: | 属性 | 返回值 | | --- | --- | | accept | 可接受的 MIME 类型 | | accept_charset | 可接受的字符集 | | accept_encoding | 可接受的编码 | | accept_language | 可接受的语言 | | auth_type | 可接受的类型 | | raw_cookie | Cookie 数据 (原字符串) | | content_length | 内容长度(Content length) | | content_type | 内容类型(Content type) | | From | Client e-mail 地址 | | gateway_interface | CGI 版本 | | path_info | 路径 | | path_translated | 转换后的路径 | | Query_string | 查询字符串 | | referer | 之前访问网址 | | remote_addr | 客户端主机地址(IP) | | remote_host | 客户端主机名 | | remote_ident | 客户端名 | | remote_user | 经过身份验证的用户 | | request_method | 请求方法(GET, POST, 等。) | | script_name | 参数名 | | server_name | 服务器名 | | server_port | 服务器端口 | | server_protocol | 服务器协议 | | server_software | 服务器软件 | | user_agent | 用户代理(User agent) |