Wiki内検索
最近更新したページ
最新コメント
TCP by awesome things!
リファレンス by awesome things!
FrontPage by stunning seo guys
UDP by awesome things!
FTP by nike air max 1
FTP by Best Canada Goose Jacket Canadian Goose Outlet Sale With Big Discount
UDP by tips about seo
TCP by check this out
FrontPage by seo thing
FTP by canada goose chilliwack bomber
Menu
ここは自由に編集できるエリアです。
タグ
フリーエリア
タグ
フリーエリア

URL

urlネームスペースはRFC2396にしたがって、パース、保護、ベースからの絶対URLと相対URLを構築する関数を提供します。

urlネームスペースを取得するには次のようにします。

-- URLモジュールをロード
local url = require("socket.url")

URLは次のような文法で定義されます。

<url> ::= [<scheme>:][//<authority>][/<path>][;<params>][?<query>][#<fragment>]
<authority> ::= [<userinfo>@]<host>[:<port>]
<userinfo> ::= <user>[:<password>]
<path> ::= {<segment>/}<segment>


url.absolute(base, relative)

ベースURLと相対URLから絶対URLを構築します。

baseはベースURLの文字列、もしくはパースしたURLテーブルです。
relativeは相対URLの文字列です。

この関数は絶対URLの文字列を返します。

注意:構築するための規則はかなり複雑なものです。詳細はRFC2396で述べられています。
以下はその規則がどのようなものかの例です。

http://a/b/c/d;p?q

+

g:h      =  g:h
g        =  http://a/b/c/g
./g      =  http://a/b/c/g
g/       =  http://a/b/c/g/
/g       =  http://a/g
//g      =  http://g
?y       =  http://a/b/c/?y
g?y      =  http://a/b/c/g?y
#s       =  http://a/b/c/d;p?q#s
g#s      =  http://a/b/c/g#s
g?y#s    =  http://a/b/c/g?y#s
;x       =  http://a/b/c/;x
g;x      =  http://a/b/c/g;x
g;x?y#s  =  http://a/b/c/g;x?y#s
.        =  http://a/b/c/
./       =  http://a/b/c/
..       =  http://a/b/
../      =  http://a/b/
../g     =  http://a/b/g
../..    =  http://a/
../../   =  http://a/
../../g  =  http://a/g


url.build(parsed_url)

URLの一部から、新しいURLを再構築します。

parsed_urlはparse関数が返すのと同じコンポーネントを持ったテーブルです。
低レベルのコンポーネントを指定した場合、URL文法の高レベルコンポーネントよりも優先されます。

この関数は構築されたURL文字列を返します。


url.build_path(segments, unsafe)

セグメントのリストからパスコンポーネントを構築します。
構成の前に、セグメントの中に予約文字があるとエスケープを行い、有効なURLパスが結果として返されます。

この関数は構築したパスコンポーネントを文字列で返します。


url.escape(content)

content文字列の各バイトを、パーセント文字に続いて整数値で16進数の2バイトが続くようにURLエスケープを適用します。

contentはエンコードされる文字列です。

-- urlモジュールをロード
url = require("socket.url")

code = url.escape("/#?;")
-- code = "%2f%23%3f%3b"


url.parse(url, default)

与えられた文字列をパースして、そのコンポーネントをLuaテーブルに入れます。

urlはパースされるURLです。defaultテーブルがあった場合、パースした要素を格納するのに使用されます。
URLに含まれている要素だけが上書きされます。したがって、このテーブルは各要素のデフォルト値を指定するのに使用することができます。

この関数は全てのURLコンポーネントを含んだテーブルを返します。

parsed_url = {
  url = string,
  scheme = string,
  authority = string,
  path = string,
  params = string,
  query = string,
  fragment = string,
  userinfo = string,
  host = string,
  port = string,
  user = string,
  password = string
}


-- urlモジュールをロード
url = require("socket.url")

parsed_url = url.parse("http://www.example.com/cgilua/index.lua?a=2#there")
-- parsed_url = {
--   scheme = "http",
--   authority = "www.example.com",
--   path = "/cgilua/index.lua"
--   query = "a=2",
--   fragment = "there",
--   host = "www.puc-rio.br",
-- }

parsed_url = url.parse("ftp://root:passwd@unsafe.org/pub/virus.exe;type=i")
-- parsed_url = {
--   scheme = "ftp",
--   authority = "root:passwd@unsafe.org",
--   path = "/pub/virus.exe",
--   params = "type=i",
--   userinfo = "root:passwd",
--   host = "unsafe.org",
--   user = "root",
--   password = "passwd",
-- }


url.parse_path(path)

パスURLコンポーネントを、セグメントに分割します。

pathはパースされるパスを含んだ文字列です。

URLの中ではいくつかの文字が予約されています。
それらはパスコンポーネントに存在するときはエスケープされなければなりません。
したがって、すべてのパースされたセグメントのリストを返す前に、この関数はそれらすべてからエスケープを削除します。


url.unescape(content)

文字列からURLエスケープを取り除きます。

contentはデコードする文字列です。

この関数はデコードされた文字列を返します。
2007年12月12日(水) 21:59:05 Modified by shfox




スマートフォン版で見る