Martin
Martin

Reputation: 13

preg_match_all get div with class

I want to get div content, but my problem is quotes. Example divs:

<div class="fares" style=''> here html div content </div>
<div class="fares2" style=""> here html div content </div>
<div class='fares2' style="border:1px solid #cc"> here html div content </div>

quotes are sometimes single(') and sometimes double(") and style is the same. How can I get all fares and fares2 divs?

Upvotes: 1

Views: 1631

Answers (1)

Valery Viktorovsky
Valery Viktorovsky

Reputation: 6736

Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.

It's possible to use xpath starts-with function: //div[starts-with(@class,"fares")]

Full example:

<?php

$html = <<<EOD
<div class="fares" style=''> here html div content1</div>
<div class="fares2" style=""> here html div content2</div>
<div class='fares2' style="border:1px solid #cc"> here html div content3</div>
EOD;

$dom = new DOMDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;

$xpath = new DOMXPath($dom);
$divs = $xpath->query('//div[starts-with(@class,"fares")]');
if ($divs->length > 0) {
    foreach ($divs as $key => $div) {
        print_r($div);
    }
}

Upvotes: 2

Related Questions