Reply to Re: who is good at regular expressions?

Your name:

Reply:


Posted by Sandman on 09/07/05 17:23

In article <dfmj8b$95j$1@gemini.csx.cam.ac.uk>,
"brendan" <brendan_NOSPAM_@srl.cam.ac.uk> wrote:

> my regular expression knowledge is admittedly amateurish ... I have spent an
> hour trying to get this to work without any great success, but am in the
> middle of a big project so I can't waste a day fiddling around to get it to
> work (although I might have to if someone here can't help).
>
> I thought I would throw it out to the group to see if anyone could solve the
> problem quick and easy.
>
> I need to break a search string into components to search against a
> database.
> We want to allow the user to specify database columns by using
>
> [column name][colon][search text]
>
> i.e.
> "author:Jane Smith institution:university of Cambridge year:1976"
>
> so basically we have to split the string at the beginning of any word that
> ends in a colon.
> I need then get an array with column_name=>column_value to construct a SQL
> query from.
>
> At the moment I'm just getting garbage or parse errors ... Can anyone help?
> Accolades for anyone that can. A pint of lager for anyone in Cambridge that
> can!
> cheers
> Brendan.


This is one way to do it:

#!/usr/bin/php
<?
$string = "author:Jane Smith institution:university of Cambridge year:1976";
$m = preg_split("/\s*(\w+):/", $string, -1,
PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
for ($i=0;$i<=count($m)-1;$i+=2){
$sql_query[] = $m[$i] . " = '" . $m[$i+1] . "'";
}
print "select * from database.table where " . join(" and ", $sql_query);
?>

The output:

select * from database.table where author = 'Jane Smith' and institution =
'university of Cambridge' and year = '1976'



--
Sandman[.net]

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация