# 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) |
- Ruby 基礎
- Ruby 簡介
- Ruby 環境
- Ruby 安裝 - Unix
- Ruby 安裝 - Windows
- Ruby 命令行選項
- Ruby 環境變量
- Ruby 語法
- Ruby 數據類型
- Ruby 類和對象
- Ruby 類案例
- Ruby 變量
- Ruby 運算符
- Ruby 注釋
- Ruby 判斷
- Ruby 循環
- Ruby 方法
- Ruby 塊
- Ruby 模塊(Module)
- Ruby 字符串(String)
- Ruby 數組(Array)
- Ruby 哈希(Hash)
- Ruby 日期 & 時間(Date & Time)
- Ruby 范圍(Range)
- Ruby 迭代器
- Ruby 文件的輸入與輸出
- Ruby File 類和方法
- Ruby Dir 類和方法
- Ruby 異常
- Ruby 高級
- Ruby 面向對象
- Ruby 正則表達式
- Ruby 數據庫訪問 - DBI 教程
- Ruby CGI 編程
- Ruby CGI方法
- Ruby CGI Cookies
- Ruby CGI Sessions
- Ruby 發送郵件 - SMATP
- Ruby Socket 編程
- Ruby XML, XSLT 和 XPath 教程
- Ruby Web Services 應用 - SOAP4R
- Ruby 多線程
- 免責聲明