Re: HTML Parse Issue
| From: | Jim Lucas | Date: | Mon, 15 Oct 2007 23:19:12 +0000 |
| Subject: | Re: HTML Parse Issue | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-263219@lists.php.net to get a copy of this message | ||
Jim Lucas wrote:
admin@buskirkgraphics.com wrote:I just realized a problem with this code. You have tabs/spaces/new lines between your different tags, so my regx needs a little modification Try this instead: <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="([^"]+)">\s*<div class="rideon">\s*<h2>\s*<span>([^<]+)</span>\s*</h2>\s*</div>\s*</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 ShakespeareI 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) ) {<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">print_r($matches);} else {echo 'Could not match anything.';}