| Class CGI |
|
| Methods |
| Public Class methods |
| escape(string) |
url_encoded_string = CGI::escape("string")
| unescape(string) |
string = CGI::unescape("url encoded string")
| escapeHTML(string) |
CGI::escapeHTML("string")
Escapes the characters & \ " < >
| unescapeHTML(string) |
CGI::unescapeHTML("HTML escaped string")
| escapeElement(string, *elements) |
Escape one or more elements in a string.
Examples:
print CGI::escapeElement('<BR><A HREF="url"></A>', "A", "IMG")
"<BR><A HREF="url"></A>"
print CGI::escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"])
"<BR><A HREF="url"></A>"
| unescapeElement(string, *elements) |
Unescape one or more elements.a
print CGI::unescapeElement(
CGI::escapeHTML('<BR><A HREF="url"></A>'), "A", "IMG")
"<BR><A HREF="url"></A>"
print CGI::unescapeElement(
CGI::escapeHTML('<BR><A HREF="url"></A>'), ["A", "IMG"])
"<BR><A HREF="url"></A>"
| rfc1123_date(time) |
Convert a time to an RFC1123 format date string
CGI::rfc1123_date(Time.now)
Sat, 01 Jan 2000 00:00:00 GMT
| Public Instance methods |
| header(options = "text/html") |
Make an HTTP header string
header
Content-Type: text/html
header("text/plain")
Content-Type: text/plain
header({"nph" => true,
"status" => "OK", # == "200 OK"
"server" => ENV['SERVER_SOFTWARE'],
"connection" => "close",
"type" => "text/html",
"charset" => "iso-2022-jp",
"language" => "ja",
"expires" => Time.now + 30,
"cookie" => [cookie1, cookie2],
"my_header1" => "my_value"
"my_header2" => "my_value"})
Header will not convert charset.
Status is one of
"OK" --> "200 OK" "PARTIAL_CONTENT" --> "206 Partial Content" "MULTIPLE_CHOICES" --> "300 Multiple Choices" "MOVED" --> "301 Moved Permanently" "REDIRECT" --> "302 Found" "NOT_MODIFIED" --> "304 Not Modified" "BAD_REQUEST" --> "400 Bad Request" "AUTH_REQUIRED" --> "401 Authorization Required" "FORBIDDEN" --> "403 Forbidden" "NOT_FOUND" --> "404 Not Found" "METHOD_NOT_ALLOWED" --> "405 Method Not Allowed" "NOT_ACCEPTABLE" --> "406 Not Acceptable" "LENGTH_REQUIRED" --> "411 Length Required" "PRECONDITION_FAILED" --> "412 Rrecondition Failed" "SERVER_ERROR" --> "500 Internal Server Error" "NOT_IMPLEMENTED" --> "501 Method Not Implemented" "BAD_GATEWAY" --> "502 Bad Gateway" "VARIANT_ALSO_VARIES" --> "506 Variant Also Negotiates"
| out(options = "text/html") {|| ...} |
Print HTTP header and a given string to $DEFAULT_OUTPUT ($>)
cgi = CGI.new
cgi.out{ "string" }
# Content-Type: text/html
# Content-Length: 6
#
# string
cgi.out("text/plain"){ "string" }
# Content-Type: text/plain
# Content-Length: 6
#
# string
cgi.out({"nph" => true,
"status" => "OK", # == "200 OK"
"server" => ENV['SERVER_SOFTWARE'],
"connection" => "close",
"type" => "text/html",
"charset" => "iso-2022-jp",
# Content-Type: text/html; charset=iso-2022-jp
"language" => "ja",
"expires" => Time.now + (3600 * 24 * 30),
"cookie" => [cookie1, cookie2],
"my_header1" => "my_value",
"my_header2" => "my_value"}){ "string" }
If "HEAD" == REQUEST_METHOD then output only HTTP header.
If charset is "iso-2022-jp" or "euc-jp" or "shift_jis" then convert string charset, and set language to "ja".