Cleaning up stack URLs

Martin Baxter mb.userev at harbourhosting.co.uk
Tue Apr 24 16:29:37 EDT 2007


Devin Asay wrote:
> I'm working on a stack that launches stacks from the web with 'go stack 
> URL'.
> 
> I know there are certain characters that are illegal or unsafe in URL 
> strings. (See http://tools.ietf.org/html/rfc1738) These include space, 
> quote and a number of others. Most web browsers automatically escape 
> these characters for you, so, e.g., a space is converted to '%20' before 
> the browser sends the request to the server.
> 
> I'm about to start writing a function that checks a potential stack URL 
> for illegal and unsafe characters and converts them to escape sequences, 
> but I don't want to reinvent the wheel if such a thing already exists.
> 
> Am I right that there is no equivalent functionality built into Rev? I 
> know about URLEncode(), of course, but that serves a different 
> purpose--formatting strings for POSTing, rather than formatting strings 
> for retrieving files from a server (a GET request?) Am I understanding 
> this correctly?
> 

I think you are right Devin, unfortunately. Anyway, you can't give the 
whole url to urlencode as it will also encode the slashes and colons 
etc. etc.

Looking at my php manual, I find php has 2 functions:
urlencode()
rawurlencode()

and the difference is described as the treatment of space: + in 
urlencode, %20 in rawurlencode

This is a surmise, but I think that RR urlencode is the same as php's 
identically named function. If so, a shortcut might be to replace the 
spaces yourself before applying urlencode() which should deal with any 
remaining problem characters

something like (untested)

put "http://www.whatever.com/" into tdomainpart
put "exciting content/big file.html" into tpath
replace space with "%20" in tpath
set itemdelimiter to "/"
put empty into t_assemble
repeat with i = 1 to the number of items in tpath
   put urlencode(item i of tpath) into item i of tencodedpath
end repeat

put tdomainpart & tencodedpart into tencodedurl


> A related issue is, are there characters that are disallowed as 
> filenames for rev stackfiles? I can't find any such list anywhere. I 
> suppose this would be determined by the host OS?
> 

That's what I would expect. I would avoid naming a rev stack beginning 
with a tilde though, because of the temp file made when saving.

Martin Baxter



More information about the use-livecode mailing list