On Wed, Jun 3, 2009 at 2:29 PM, Paul M Foster <paulf@xxxxxxxxxxxxxxxxx> 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