On Wed, Jun 3, 2009 at 2:29 PM, Paul M Foster <pa...@quillandmouse.com> wrote:
> (Sorry, I hit the wrong button and sent the reply only to Skip.)
>
> On Wed, Jun 03, 2009 at 11:18:57AM -0500, Skip Evans wrote:
>
>> Hey all,
>>
>> I have a file uploader module that allows users to upload
>> documents and of course people are using all kinds of file
>> names that are not web friendly.
>>
>> I guess the best solution is to replace any non alphanumeric
>> with maybe '_' the underscore? How does that sound?
>>
>> Unfortunately, after 20+ years of coding I cannot get my brain
>> around regular expressions to any decent level of proficiency,
>> I know sad.
>>
>> I'd like to hear other solutions for this problem, I am
>> thinking of a regexp that replaces special chars with the
>> underscore; sounds pretty robust and globally acceptable?
>>
>> Opinions, witticisms, flames, quotations by famous d├ębutantes?
>
> Here's what I do on some of my webpages:
>
> $fname = preg_replace("%[^A-Za-z0-9_\.]%", "_", $_POST['fname']);
>
> This says to replace any character which isn't alphanumeric or
> underscore or period, with an underscore. You can add characters to the
> first expression in preg_replace to allow more characters, or change the
> underscore expression with nothing ("") or whatever. I typically simply
> eliminate bad stuff by using "" as the second parameter for
> preg_replace.
>
> To expand further on one thing: inside the first parameter, you'll see
> the open square bracket ([) which indicates the beginning of a character
> grouping or class. The next character, the caret (^) indicates negation.
> So that expression means that anything which doesn't match these
> characters gets whatever the next parameter is.
>
> Paul
>
> --
> Paul M. Foster
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Also don't forget to check for uniqueness after doing all of these
transformations fellas.  In my experience users love uploading the
same names over and over. :)

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to