Ruby CGI方法


以下為CGI類別的方法清單:

##2#345678910

CGI 實例化方法

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

序號方法描述
1CGI::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)。
序號方法描述
#1c[ name]
傳回一個數組,包含了對應欄位名為name 的值。
2c.checkbox( name[, 值[, check=false]])
c.checkbox( options)

傳回HTML 字串用於定義checkbox 欄位。標籤的屬性可以以一個哈希函數作為參數傳遞。
3c.checkbox_group( name, 值...)
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[, 值])
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, 值...)
c.popup_menu( options)
c.scrolling_list( name , value...)
c.scrolling_list( options)

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

傳回定義一個radio欄位的HTML字串。標籤的屬性可以以一個哈希函數作為參數傳遞。
19c.radio_group( name, 值...)
c.radio_group( options)

#回傳定義一個radio按鈕群組的HTML字串。標籤的屬性可以以一個哈希函數作為參數傳遞。
20c.reset( name[, 值])
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 實例中使用下列屬性:

##From## Client e-mail 位址gateway_interfaceCGI 版本path_infopath_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伺服器軟體
#屬性傳回值
accept可接受的MIME 類型
accept_charset可接受的字元集
accept_encoding可接受的編碼
accept_language#可接受的語言
auth_type #可接受的類型
raw_cookieCookie 資料(原始字串)
content_length#內容長度(Content length)
content_type內容類型(Content type)
##」路徑
轉換後的路徑
user_agent使用者代理程式(User agent)
#