By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,636 Members | 2,360 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,636 IT Pros & Developers. It's quick & easy.

parsing a string for keywords

P: n/a
I need to parse a set of directory entries (of photo image files)
and pull out the names of the subjects, which is in the filename.

A file name could contain 1 or more subject names from a limited
set of 18 possibilities.

eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....

the file name might be: 0709-Aoife-Alana-DSC12435.jpg

I could do 18 stripos() calls to check for all 18 possibilities,
but I thought I would run it by the more experienced to see if
you can suggest an easier way

thanks in advance.

bill
Jan 27 '07 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Rik
bill <no****@spamcop.netwrote:
I need to parse a set of directory entries (of photo image files) and
pull out the names of the subjects, which is in the filename.

A file name could contain 1 or more subject names from a limited set of
18 possibilities.

eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....

the file name might be: 0709-Aoife-Alana-DSC12435.jpg

I could do 18 stripos() calls to check for all 18 possibilities, but I
thought I would run it by the more experienced to see if you can suggest
an easier way

thanks in advance.
$possibities = array('foo','bar','baz'........);
$filenameparts = explode('-',$filename);
$matches = array_intersect($filenameparts,$possibities);
--
Rik Wasmus
Jan 27 '07 #2

P: n/a
Rik wrote:
bill <no****@spamcop.netwrote:
>I need to parse a set of directory entries (of photo image files) and
pull out the names of the subjects, which is in the filename.

A file name could contain 1 or more subject names from a limited set
of 18 possibilities.

eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....

the file name might be: 0709-Aoife-Alana-DSC12435.jpg

I could do 18 stripos() calls to check for all 18 possibilities, but I
thought I would run it by the more experienced to see if you can
suggest an easier way

thanks in advance.

$possibities = array('foo','bar','baz'........);
$filenameparts = explode('-',$filename);
$matches = array_intersect($filenameparts,$possibities);
--Rik Wasmus
absolutely lovely

bill
Jan 27 '07 #3

P: n/a
Rik
bill <no****@spamcop.netwrote:
Rik wrote:
>bill <no****@spamcop.netwrote:
>>I need to parse a set of directory entries (of photo image files) and
pull out the names of the subjects, which is in the filename.

A file name could contain 1 or more subject names from a limited set
of 18 possibilities.

eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....

the file name might be: 0709-Aoife-Alana-DSC12435.jpg

I could do 18 stripos() calls to check for all 18 possibilities, butI
thought I would run it by the more experienced to see if you can
suggest an easier way

thanks in advance.
$possibities = array('foo','bar','baz'........);
$filenameparts = explode('-',$filename);
$matches = array_intersect($filenameparts,$possibities);
Addendum, if you want a case-insensitive comparison (PHP >= 5):
$matches = array_uintersect($filenameparts,$possibities,'strc asecmp');

--
Rik Wasmus
Jan 27 '07 #4

P: n/a
Rik wrote:
bill <no****@spamcop.netwrote:
>Rik wrote:
>>bill <no****@spamcop.netwrote:

I need to parse a set of directory entries (of photo image files)
and pull out the names of the subjects, which is in the filename.

A file name could contain 1 or more subject names from a limited set
of 18 possibilities.

eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....

the file name might be: 0709-Aoife-Alana-DSC12435.jpg

I could do 18 stripos() calls to check for all 18 possibilities, but
I thought I would run it by the more experienced to see if you can
suggest an easier way

thanks in advance.
$possibities = array('foo','bar','baz'........);
$filenameparts = explode('-',$filename);
$matches = array_intersect($filenameparts,$possibities);

Addendum, if you want a case-insensitive comparison (PHP >= 5):
$matches = array_uintersect($filenameparts,$possibities,'strc asecmp');

--Rik Wasmus
thanks for the update, but my web host is still at 4.1.x

bill
Jan 28 '07 #5

P: n/a
On Jan 28, 12:28 pm, bill <nob...@spamcop.netwrote:
Rik wrote:
bill <nob...@spamcop.netwrote:
Rik wrote:
bill <nob...@spamcop.netwrote:
>>I need to parse a set of directory entries (of photo image files)
and pull out the names of the subjects, which is in the filename.
>>A file name could contain 1 or more subject names from a limited set
of 18 possibilities.
>>eg: the possibilities might be: Aoife, Alana, Liam, Paddy.....
>>the file name might be: 0709-Aoife-Alana-DSC12435.jpg
>>I could do 18 stripos() calls to check for all 18 possibilities, but
I thought I would run it by the more experienced to see if you can
suggest an easier way
>>thanks in advance.
$possibities = array('foo','bar','baz'........);
$filenameparts = explode('-',$filename);
$matches = array_intersect($filenameparts,$possibities);
Addendum, if you want a case-insensitive comparison (PHP >= 5):
$matches = array_uintersect($filenameparts,$possibities,'strc asecmp');
--Rik Wasmus

thanks for the update, but my web host is still at 4.1.x

bill
You could iterate through your arrays, changing the case of each
element to lower/higher, and then compare with array_intersect. If you
just put strtolower() around the second argument of explode, that
should take care of that array. You could use array_map for the
former.

--
Curtis

Jan 30 '07 #6

This discussion thread is closed

Replies have been disabled for this discussion.