Ruby CGI方法

Ruby CGI方法

以下為CGI類的方法列表:

序號方法描述
1CGI::new([ level="query"])
建立 CGI 物件。query可以是以下值:
  • query: 沒有 HTML 生成輸出

  • html3: HTML3.2

  • html4: HTML4.0 Strict

  • html4Tr: HTML4.0 Transitional

  • html4Fr: HTML4.0 Frameset

2CGI::escape( str)
使用 URL 編碼來轉義字串
3CGI::unescape( str)
對通過 escape() 編碼的字串進行解碼。
4CGI::escapeHTML( str)
編碼 HTML 特殊字元, 包括: & < >。
5CGI::unescapeHTML( str)
解碼 HTML 特殊字元, 包括: & < >。
6CGI::escapeElement( str[, element...])
在指定的 HTML 元素中編碼 HTML 特殊字元。
7CGI::unescapeElement( str, element[, element...])
在指定的 HTML 元素中解碼 HTML 特殊字元。
8CGI::parse( query)
解析查詢字串,並返回包含雜湊的 鍵=》值 對。
9CGI::pretty( string[, leader=" "])
返回整齊的HTML格式。 如果指定了 leader ,它將寫入到每一行的開頭。 leader 預設值為兩個空格。
10CGI::rfc1123_date( time)
根據 RFC-1123 來格式化時間 (例如, Tue, 2 Jun 2008 00:00:00 GMT)。

CGI 例項化方法

以下例項中我們將 CGI::new 的物件賦值給 c 變數,方法列表如下:

序號方法描述
1c[ name]
返回一個數組,包含了對應欄位名為 name 的值。
2c.checkbox( name[, value[, check=false]])
c.checkbox( options)

返回 HTML 字串用於定義 checkbox 欄位。標籤的屬性可以以一個雜湊函式作為引數傳遞。
3c.checkbox_group( name, value...)
c.checkbox_group( options)

>返回 HTML 字串用於定義 checkbox 組。標籤的屬性可以以一個雜湊函式作為引數傳遞。
4c.file_field( name[, size=20[, max]])
c.file_field( options)

返回定義 file 欄位的HTML字串。
5c.form([ method="post"[, url]]) { ...}
c.form( options)

返回定義 form 表單的HTML字串。 如果指定了程式碼塊,將作為表單內容輸出。標籤的屬性可以以一個雜湊函式作為引數傳遞。
6c.cookies
返回 CGI::Cookie 物件,包含了cookie 中的鍵值對。
7c.header([ header])
返回 CGI 頭部的資訊。如果 header 引數是雜湊值,其鍵 - 值對,用於建立頭部資訊。
8c.hidden( name[, value])
c.hidden( options)

返回定義一個隱藏欄位的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
9c.image_button( url[, name[, alt]])
c.image_button( options)

返回定義一個影象按鈕的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
10c.keys
返回一個數組,包含了表單的欄位名。
11c.key?( name)
c.has_key?( name)
c.include?( name)

如果表單包含了指定的欄位名返回 true。
12c.multipart_form([ url[, encode]]) { ...}
c.multipart_form( options) { ...}

返回定義一個多媒體表單(multipart)的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
13c.out([ header]) { ...}
生成 HTML 並輸出。使用由塊的輸出來建立頁面的主體生成的字串。
14c.params
返回包含表單欄位名稱和值的雜湊值。
15c.params= hash
設定使用欄位名和值。
16c.password_field( name[, value[, size=40[, max]]])
c.password_field( options)

返回定義一個password欄位的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
17c.popup_menu( name, value...)
c.popup_menu( options)
c.scrolling_list( name, value...)
c.scrolling_list( options)

返回定義一個彈出式選單的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
18c.radio_button( name[, value[, checked=false]])
c.radio_button( options)

返回定義一個radio欄位的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
19c.radio_group( name, value...)
c.radio_group( options)

返回定義一個radio按鈕組的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
20c.reset( name[, value])
c.reset( options)

返回定義一個reset按鈕的HTML字串。 標籤的屬性可以以一個雜湊函式作為引數傳遞
21c.text_field( name[, value[, size=40[, max]]])
c.text_field( options)

返回定義一個text欄位的HTML字串。標籤的屬性可以以一個雜湊函式作為引數傳遞。
22c.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_cookieCookie 資料 (原字串)
content_length內容長度(Content length)
content_type內容型別(Content type)
FromClient e-mail 地址
gateway_interfaceCGI 版本
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)