Re: Limit Local Search to Content

From: Date: Fri, 27 Mar 2009 00:22:29 +0000
Subject: Re: Limit Local Search to Content
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-290725@lists.php.net to get a copy of this message
What about storing all of the page content in the database to start with, then searching with a mysql statement is a breeze! On Thu, 2009-03-26 at 16:29 -0600, George Langley wrote: > ----- Original Message ----- > > From: Stuart <stuttle@gmail.com> > > > You can't have any extra info in a closing HTML tag. This > > > problem is > > > usually handled using comments. Something like the following... > > > > > > <div id="divContent"> > > > <!-- content begin --> > > > sofihsod hiosdh sdh gus us u sg > > > <!-- content end --> > > > </div> > > > > > > You then just start with you see the begin comment and stop > > when you > > > hit the end comment. > > --------- > Hmm, they are stripping out the tags before looking at the words, so didn't work quite as > I originally thought. > The solution seems to be to explode the string based on the entire comment before doing the > word-by-word storing. I wrote up the following test code that seems to work and handles any string > or error I could think of. Am wondering if this is good or is there better/more efficient code? > > > <?php > > function contentString($pString, $pStart, $pStop){ > echo "$pString<br />"; > > $finalArray = array(); > $finalString = ""; > $exploded1 = explode($pStart, $pString); // makes array $exploded1 > > for ($i=1; $i<count($exploded1); $i++) // ignore first item (0) in array > { > $exploded2 = explode($pStop, $exploded1[$i]); > array_push($finalArray, $exploded2[0]); // array of just the wanted sections > } > foreach ($finalArray as $value3) > { > $finalString .= $value3 . " "; // " " ensures separation between > substrings > } > $finalString = trim($finalString); // trim any extra white space from beginning/end > > echo $finalString; > echo "<br /><br />"; > } > > // TEST > $startTerm = "START"; > $stopTerm = "STOP"; > > // test typical string > $theString = "one two START three four STOP five six START seven eight STOP nine > ten"; > contentString($theString, $startTerm, $stopTerm); // outputs "three four seven > eight" > // test string with immediate START > $theString = "START one two STOP three four START five six STOP seven eight START nine > ten"; > contentString($theString, $startTerm, $stopTerm); // outputs "one two five six nine > ten" > // test string with "error" (2 STARTS) > $theString = "START one two START three four STOP five six START seven eight STOP nine > ten"; > contentString($theString, $startTerm, $stopTerm); // outputs "one two three four seven > eight" > // test string with no space between separators and real content > $theString = "STARTone twoSTOP three four STARTfive sixSTOP seven eight STARTnine > ten"; > contentString($theString, $startTerm, $stopTerm); // outputs "one two five six nine > ten" > > ?> > > Any thoughts/suggestions? Thanks! > > George Ash www.ashleysheridan.co.uk

« previous php.general (#290725) next »