RE: [PHP] newbie Q: How to say, "if the fileNAME is equal to...", or better yet, "if the fileNAME ends with '.jpg'"?

From: Date: Tue, 26 Aug 2008 17:08:46 +0000
Subject: RE: [PHP] newbie Q: How to say, "if the fileNAME is equal to...", or better yet, "if the fileNAME ends with '.jpg'"?
Groups: php.general 
Request: Send a blank email to php-general+get-278739@lists.php.net to get a copy of this message
On 26 August 2008 17:15, James Ausmus advised: > On Tue, Aug 26, 2008 at 8:57 AM, Ford, Mike > <M.Ford@leedsmet.ac.uk> wrote: >> On 25 August 2008 00:54, Govinda advised: > > <snip> > >> Personally, I might be tempted to do something like this: >> >> if (($pos = strrchr($file, '.'))!==FALSE): >> switch (strtolower(substr($file, $pos))): >> case '.gif': >> case '.png': >> case '.jpg': >> case '.jpeg': >> echo $file; >> endswitch; >> endif; > > <snip> > > Of course, this could be simplified *slightly* by actually taking > advantage of the loose typing of PHP - change the above if statement to: > > if (($pos = strpos($file, '.'))) > { > $restOfAboveCodeHere; > } > > This way, if the file is the '.' or '..' files, then you will get a 0 > for the position of the '.', which will evaluate to FALSE. All other > files will return a non-zero position of the '.' char, which will > evaluate to TRUE. Also, I would believe (but have no evidence at all > of) that a forward-looking string position search will be very > slightly faster than a strrchr search - dunno for certain, and don't > care enough to code up a couple-line test, but just my gut... ;) The problem with that is that a file called, say, site.logo.jpg will fail the subsequent tests, since the substr() on the next line will return '.logo.jpg'. (And whilst it is vanishingly improbable, it is _just_ possible for someone to supply a file called .gif !!!!! ;) Cheers! Mike -- Mike Ford, Electronic Information Developer, C507, Leeds Metropolitan University, Civic Quarter Campus, Woodhouse Lane, LEEDS, LS1 3HE, United Kingdom Email: m.ford@leedsmet.ac.uk Tel: +44 113 812 4730 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm

« previous php.general (#278739) next »