|
Posted by C. (http://symcbean.blogspot.com/) on 12/19/07 17:21
On 19 Dec, 16:51, "Steve" <no....@example.com> wrote:
> "Toby A Inkster" <usenet200...@tobyinkster.co.uk> wrote in messagenews:hoqn35-hv3.ln1@ophelia.g5n.co.uk...
>
>
>
> > Captain Paralytic wrote:
>
> >> How do you define a valid filename?
>
> > Good question. As far as I know, for Linux and most UNIXy OSes it's this:
>
> > #[^/]#
>
> > i.e. any string that doesn't contain a slash is a valid filename. (Because
> > of course, the slash must be a directory separator.) Any other character
> > is valid in a file name -- asterisks, question marks, colons, tabs, line
> > feeds, whatever. Names "." and ".." are technically allowed, but they
> > always already exist.
>
> > It does depend on the filesystem though. Linux supports dozens of
> > different filesystems and some of those will limit you further.
>
> > Windows is a more fussy. As well as slashes, it doesn't allow colons,
> > backslashes, asterisks, question marks, whitespace other than the space
> > character itself, less-than and greater-than signs, double quotes and the
> > pipe symbol. There are also a small number of reserved file names that
> > cannot be created, such as "CON", "PRN", "CLOCK$" and "LPT1" -- these
> > special filenames were used to represent various hardware devices in DOS.
>
> with the exception of CLOCK$ on win >= xp, you're exactly right...and i'm
> glad i'm not the only one geeky enough to know that. :^)
Actually, you can create these files using some programming languages
- and get up to all sorts of mischief as a result (not least because
MS Windows doesn't let you delete them)
I'd go with is_writeable(realpath($filename)) (of course that doesn't
stop people writing files where they shouldn't.
C.
C.
Navigation:
[Reply to this message]
|