Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > cgiライブラリ > CGIクラス
class CGI
クラスの継承リスト: CGI < CGI::QueryExtension < Object < Kernel < BasicObject
Abstract
特異メソッド
escape(string) -> string
-
string を URL エンコードした文字列を新しく作成し返します。
例:
require "cgi" p CGI.escape('@##') #=> "%40%23%23" url = "http://www.example.com/register?url=" + CGI.escape('http://www.example.com/index.rss') p url #=> "http://www.example.com/register?url=http%3A%2F%2Fwww.example.com%2Findex.rss"
escapeElement(string, *elements) -> string
-
elements に指定したエレメントのタグだけを実体参照に置換します。
例:
require "cgi" p CGI.escapeElement('<BR><A HREF="url"></A>', "A", "IMG") # => "<BR><A HREF="url"></A>" p CGI.escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"]) # => "<BR><A HREF="url"></A>"
escapeHTML(string) -> string
-
string 中の &"<> を実体参照にエンコードした文字列を新しく作成し返します。
require "cgi" p CGI.escapeHTML("3 > 1") #=> "3 > 1" print('<script type="text/javascript">alert("警告")</script>') p CGI.escapeHTML('<script type="text/javascript">alert("警告")</script>') #=> "<script type="text/javascript">alert("警告")</script>"
parse(query) -> object
-
QUERY_STRING をパースします。
例:
require "cgi" params = CGI.parse("query_string") # {"name1" => ["value1", "value2", ...], # "name2" => ["value1", "value2", ...], ... }
pretty(string, shift = " ") -> string
-
HTML を人間に見やすく整形します。
例:
require "cgi" print CGI.pretty("<HTML><BODY></BODY></HTML>") # <HTML> # <BODY> # </BODY> # </HTML> print CGI.pretty("<HTML><BODY></BODY></HTML>", "\t") # <HTML> # <BODY> # </BODY> # </HTML>
rfc1123_date(time) -> string
-
時刻 time を [RFC1123] フォーマットに準拠した文字列に変換します。
例:
require "cgi" CGI.rfc1123_date(Time.now) # => Sat, 1 Jan 2000 00:00:00 GMT
unescape(string) -> string
-
string を URL デコードした文字列を新しく作成し返します。
require "cgi" p CGI.unescape('%40%23%23') #=> "@##" p CGI.unescape("http%3A%2F%2Fwww.example.com%2Findex.rss") #=> "http://www.example.com/index.rss"
unescapeElement(string, *element) -> string
-
特定の要素だけをHTMLエスケープから戻す。
例:
require "cgi" print CGI.unescapeElement('<BR><A HREF="url"></A>', "A", "IMG") # => "<BR><A HREF="url"></A>" print CGI.unescapeElement('<BR><A HREF="url"></A>', %w(A IMG)) # => "<BR><A HREF="url"></A>"
unescapeHTML(string) -> string
-
string 中の実体参照のうち、& > < " と数値指定がされているもの (�ffff など) だけを外します。
require "cgi" p CGI.unescapeHTML("3 > 1") #=> "3 > 1"
インスタンスメソッド
header(options = "text/html") -> string
-
HTTP ヘッダを options に従って生成します。( CGI#out と違い、標準出力には出力しません) CGI#out を使わずに自力で HTML を出力したい場合などに使います。 このメソッドは文字列エンコーディングを変換しません。 [ruby-list:35911]
例:
header # Content-Type: text/html header("text/plain") # Content-Type: text/plain header({"nph" => true, "status" => "OK", # == "200 OK" # "status" => "200 GOOD", "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 + 30, "cookie" => [cookie1, cookie2], "my_header1" => "my_value" "my_header2" => "my_value"})
status パラメータには以下の文字列が使えます。
"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"
例:
cgi = CGI.new('html3') print cgi.header({"charset" => "shift_jis", "status" => "OK"}) print "<html><head><title>TITLE</title></head>\r\n" print "<body>BODY</body></html>\r\n"
out(options = "text/html") { .... }
-
HTTP ヘッダと、ブロックで与えられた文字列を標準出力に出力します。
例:
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" }
HEADリクエスト (REQUEST_METHOD == "HEAD") の場合は HTTP ヘッダのみを出力します。
charset が "iso-2022-jp"・"euc-jp"・"shift_jis" のいずれかで ある場合は文字列エンコーディングを自動変換し、language を "ja"にします。
print(*strings)
-
引数の文字列を標準出力に出力します。 cgi.print は $DEFAULT_OUTPUT.print と等価です。
例:
cgi = CGI.new cgi.print "This line is a part of content body.\r\n"
定数
CR
EOL
HTTP_STATUS
LF
NEEDS_BINMODE
PATH_SEPARATOR
REVISION
RFC822_DAYS
RFC822_MONTHS