Re: validating directory and file name with preg_match

From: Date: Wed, 28 Jan 2009 19:04:16 +0000
Subject: Re: validating directory and file name with preg_match
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-287280@lists.php.net to get a copy of this message
""Frank Stanovcak"" <blindspotpro@comcast.net> wrote in message news:A8.D6.08436.5CF80894@pb1.pair.com... > I'm limiting access to certain proceedures based on the file trying to use > them, and the directory they are located in on my server. Right now I am > using two preg_match statments as you will see. What I want to know is > this. Is there a way to write a single regex for this that will supply > the file name as a match, and only return if the directory is valid? > > ------------ > //make sure we are calling from the propper directory, and get the file > name that included to determine > //database access needs > > preg_match('#^C:\\\\Inetpub\\\\wwwroot\\\\folder\\\\(entry|edit)\\\\(\w*\\.(php|pdf))#i', > $included_files[0], $check1); > preg_match('#^C:\\\\Inetpub\\\\wwwroot\\\\folder\\\\(\w*\\.(php|pdf))#i', > $included_files[0], $check2); > if(isset($check1)){ > if(is_array($check1)){ > $matches[4] = $check1[2]; > }; > unset($check1); > }; > if(isset($check2)){ > if(is_array($check2)){ > $matches[4] = $check2[1]; > }; > unset($check2); > }; > if(isset($matches[4]){ > more code here > }; > ------Then Robyn Sed------ Looks like the difference between the 2 patterns is the '(entry|edit)\\\\' part -- couldn't you make that optional and combine it into one expression? Ie, '((entry|edit)\\\\)*' As for returning the filename, basename() is your friend. R ------end------ I would use basename, but I want only the two file types specified to trigger a return. They are the only two valid php types on this server. Your suggestion worked like a charm! Thank you very much! Frank

« previous php.general (#287280) next »