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]

 



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. ;)

-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