Re: Limit Local Search to Content
| From: | George Langley | Date: | Thu, 26 Mar 2009 22:29:28 +0000 |
| Subject: | Re: Limit Local Search to Content | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-290722@lists.php.net to get a copy of this message | ||
----- 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