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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



James Ausmus schreef:
On Tue, Aug 26, 2008 at 10:08 AM, Ford, Mike <M.Ford@xxxxxxxxxxxxxx> wrote:
On 26 August 2008 17:15, James Ausmus advised:

On Tue, Aug 26, 2008 at 8:57 AM, Ford, Mike
<M.Ford@xxxxxxxxxxxxxx> 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 !!!!! ;)


Very true - shows what a couple seconds of thought prior to full
caffeine will give you. ;)

However, it still does illustrate a concept that is important - making
PHP's loose typing work *for* you, instead of fighting against it -
many of the posts here have approximately said "DANGER! Loose typing
ahead!", which could tend to make a new PHP programmer only think of
the loose typing in a negative form - something to watch out for and
avoid. If, however, you internalize the implications of loose typing,
then you can actually make good use of it, instead of just guarding
against it like the plague. ;)

very good point.

indeed it should be noted loosetyping is a good thing, you just need
to understand how to use it diligently. anyone who thinks it's evil
can always f*** off to the java camp :-P


-James


Cheers!

Mike

 --
Mike Ford,  Electronic Information Developer,
C507, Leeds Metropolitan University, Civic Quarter Campus,
Woodhouse Lane, LEEDS,  LS1 3HE,  United Kingdom
Email: m.ford@xxxxxxxxxxxxxx
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

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





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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux