Ruby CGI方法
以下為CGI類的方法列表:
序號 | 方法描述 |
1
CGI::new([ level="query"])創建 CGI 對象。query可以是以下值:
2
CGI::escape( str)使用 URL 編碼來轉義字符串
3
CGI::unescape( str)對通過 escape() 編碼的字符串進行解碼。
4
CGI::escapeHTML( str)編碼 HTML 特殊字符, 包括: & < >。
5
CGI::unescapeHTML( str)解碼 HTML 特殊字符, 包括: & < >。
6
CGI::escapeElement( str[, element...])在指定的 HTML 元素中編碼 HTML 特殊字符。
7
CGI::unescapeElement( str, element[, element...])在指定的 HTML 元素中解碼 HTML 特殊字符。
8
CGI::parse( query)解析查詢字符串,並返回包含哈希的 鍵=》值 對。
9
CGI::pretty( string[, leader=" "])返回整齊的HTML格式。 如果指定了
leader ,它將寫入到每一行的開頭。
leader 默認值為兩個空格。
10
CGI::rfc1123_date( time)根據 RFC-1123 來格式化時間 (例如, Tue, 2 Jun 2008 00:00:00 GMT)。
CGI 實例化方法
以下實例中我們將 CGI::new 的對象賦值給 c 變量,方法列表如下:
序號 | 方法描述 |
1
c[ name]返回一個數組,包含了對應字段名為
name 的值。
2
c.checkbox( name[, value[, check=false]])
c.checkbox( options)返回 HTML 字符串用於定義 checkbox 字段。標簽的屬性可以以一個哈希函數作為參數傳遞。
3
c.checkbox_group( name, value...)
c.checkbox_group( options)>返回 HTML 字符串用於定義 checkbox 組。標簽的屬性可以以一個哈希函數作為參數傳遞。
4
c.file_field( name[, size=20[, max]])
c.file_field( options)返回定義 file 字段的HTML字符串。
5
c.form([ method="post"[, url]]) { ...}
c.form( options)返回定義 form 表單的HTML字符串。 如果指定了代碼塊,將作為表單內容輸出。標簽的屬性可以以一個哈希函數作為參數傳遞。
6
c.cookies返回 CGI::Cookie 對象,包含了cookie 中的鍵值對。
7
c.header([ header])返回 CGI 頭部的信息。如果 header 參數是哈希值,其鍵 - 值對,用於創建頭部信息。
8
c.hidden( name[, value])
c.hidden( options)返回定義一個隱藏字段的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
9
c.image_button( url[, name[, alt]])
c.image_button( options)返回定義一個圖像按鈕的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
10
c.keys返回一個數組,包含了表單的字段名。
11
c.key?( name)
c.has_key?( name)
c.include?( name)如果表單包含了指定的字段名返回 true。
12
c.multipart_form([ url[, encode]]) { ...}
c.multipart_form( options) { ...}返回定義一個多媒體表單(multipart)的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
13
c.out([ header]) { ...}生成 HTML 並輸出。使用由塊的輸出來創建頁面的主體生成的字符串。
14
c.params返回包含表單字段名稱和值的哈希值。
15
c.params= hash設置使用字段名和值。
16
c.password_field( name[, value[, size=40[, max]]])
c.password_field( options)返回定義一個password字段的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
17
c.popup_menu( name, value...)
c.popup_menu( options)
c.scrolling_list( name, value...)
c.scrolling_list( options)返回定義一個彈出式菜單的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
18
c.radio_button( name[, value[, checked=false]])
c.radio_button( options)返回定義一個radio字段的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
19
c.radio_group( name, value...)
c.radio_group( options)返回定義一個radio按鈕組的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
20
c.reset( name[, value])
c.reset( options)返回定義一個reset按鈕的HTML字符串。 標簽的屬性可以以一個哈希函數作為參數傳遞
21
c.text_field( name[, value[, size=40[, max]]])
c.text_field( options)返回定義一個text字段的HTML字符串。標簽的屬性可以以一個哈希函數作為參數傳遞。
22
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_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)