admin@xxxxxxxxxxxxxxxxxxx wrote:
I am having a issue parsing an html file.
I want to pull all the data between two html tags.
Problem I am having is that no matter what I try I can pull either tag or
both but not the data in between.
<div class="record" id="one">
<div class="rideon">
<h2>
<span>Welcome to
Rideon</span>
</h2>
</div>
</div>
</div class="record" id="one">
function datamatch($document)
{
preg_match_all('/<div class="record" [^<>]*>(.*)/<\/div
class="record" [^<>]*>/i',$document,$elements);
$match = implode("\r\n",$elements[0]);
return $match;
}
This should return the following
<div class="record" id="one">
<div class="rideon">
<h2>
<span>Welcome to
Rideon</span>
</h2>
</div>
</div>
</div class="record" id="one">
<plaintext><?php
$data = '
<div class="record" id="one"><div class="rideon"><h2><span>Welcome to Rideon #1</span></h2></div></div>
<div class="record" id="two"><div class="rideon"><h2><span>Welcome to Rideon #2</span></h2></div></div>
<div class="record" id="three"><div class="rideon"><h2><span>Welcome to Rideon
#3</span></h2></div></div>
<div class="record" id="four"><div class="rideon"><h2><span>Welcome to Rideon #4</span></h2></div></div>
';
if ( preg_match_all('!<div class="record" id="([^"]+)"><div
class="rideon"><h2><span>([^<]+)</span></h2></div></div>!', $data, $matches, PREG_SET_ORDER) ) {
print_r($matches);
} else {
echo 'Could not match anything.';
}
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php