89 lines
2.2 KiB
Plaintext
89 lines
2.2 KiB
Plaintext
class URI_CONTENTS_TYPES
|
|
|
|
create
|
|
|
|
make
|
|
|
|
|
|
feature
|
|
|
|
content_types: HASH_TABLE [STRING, STRING]
|
|
|
|
extension (uri: STRING): STRING
|
|
-- extract extendion from a URI
|
|
local
|
|
i: INTEGER
|
|
do
|
|
-- going from the end find the position of the "."
|
|
from
|
|
i := uri.count
|
|
until
|
|
i = 0 or else uri.item (i) = '.'
|
|
loop
|
|
i := i - 1
|
|
end
|
|
Result := uri.substring (i+1, uri.count)
|
|
end
|
|
|
|
feature {NONE}
|
|
|
|
make
|
|
do
|
|
create content_types.make (30)
|
|
content_types.put ("text/html", "html")
|
|
content_types.put ("text/html", "htm")
|
|
content_types.put ("image/gif", "gif")
|
|
content_types.put ("image/jpeg", "jpeg")
|
|
content_types.put ("image/png", "jpg")
|
|
content_types.put ("image/png", "png")
|
|
end
|
|
|
|
|
|
|
|
feature -- Access: Encoding
|
|
|
|
urlencode (s: STRING): STRING
|
|
-- URL encode `s'
|
|
do
|
|
Result := s.string
|
|
Result.replace_substring_all ("#", "%%23")
|
|
Result.replace_substring_all (" ", "%%20")
|
|
Result.replace_substring_all ("%T", "%%09")
|
|
Result.replace_substring_all ("%N", "%%0A")
|
|
Result.replace_substring_all ("/", "%%2F")
|
|
Result.replace_substring_all ("&", "%%26")
|
|
Result.replace_substring_all ("<", "%%3C")
|
|
Result.replace_substring_all ("=", "%%3D")
|
|
Result.replace_substring_all (">", "%%3E")
|
|
Result.replace_substring_all ("%"", "%%22")
|
|
Result.replace_substring_all ("%'", "%%27")
|
|
end
|
|
|
|
urldecode (s: STRING): STRING
|
|
-- URL decode `s'
|
|
do
|
|
Result := s.string
|
|
Result.replace_substring_all ("%%23", "#")
|
|
Result.replace_substring_all ("%%20", " ")
|
|
Result.replace_substring_all ("%%09", "%T")
|
|
Result.replace_substring_all ("%%0A", "%N")
|
|
Result.replace_substring_all ("%%2F", "/")
|
|
Result.replace_substring_all ("%%26", "&")
|
|
Result.replace_substring_all ("%%3C", "<")
|
|
Result.replace_substring_all ("%%3D", "=")
|
|
Result.replace_substring_all ("%%3E", ">")
|
|
Result.replace_substring_all ("%%22", "%"")
|
|
Result.replace_substring_all ("%%27", "%'")
|
|
end
|
|
|
|
stripslashes (s: STRING): STRING
|
|
do
|
|
Result := s.string
|
|
Result.replace_substring_all ("\%"", "%"")
|
|
Result.replace_substring_all ("\'", "'")
|
|
Result.replace_substring_all ("\/", "/")
|
|
Result.replace_substring_all ("\\", "\")
|
|
end
|
|
|
|
end
|