Re: HTML Parse Issue
| From: | Jim Lucas | Date: | Mon, 15 Oct 2007 15:34:18 +0000 |
| Subject: | Re: HTML Parse Issue | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-263210@lists.php.net to get a copy of this message | ||
admin@buskirkgraphics.com 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"><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<div class="rideon"><h2><span>Welcome toRideon</span></h2></div></div> </div class="record" id="one"> function datamatch($document) {preg_match_all('/<div class="record" [^<>]*>(.*)/<\/divclass="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 toRideon</span></h2></div></div> </div class="record" id="one">