Completed
Push — master ( c39a14...8d69cc )
by Lars
02:07
created

example_find_text.php ➔ find_contains()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
nc 3
nop 3
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
1
<?php
2
3
use voku\helper\SimpleHtmlDomInterface;
4
use voku\helper\SimpleHtmlDomNode;
5
use voku\helper\SimpleHtmlDomNodeInterface;
6
7
require_once '../vendor/autoload.php';
8
9
/**
10
 * @param \voku\helper\HtmlDomParser $dom
11
 * @param string                     $selector
12
 * @param string                     $keyword
13
 *
14
 * @return SimpleHtmlDomInterface[]|SimpleHtmlDomNodeInterface
15
 */
16
function find_contains(
17
    \voku\helper\HtmlDomParser $dom,
18
    string $selector,
19
    string $keyword
20
) {
21
    // init
22
    $elements = new SimpleHtmlDomNode();
23
24
    foreach ($dom->find($selector) as $e) {
25
        if (strpos($e->innerText(), $keyword) !== false) {
26
            $elements[] = $e;
27
        }
28
    }
29
30
    return $elements;
31
}
32
33
// -----------------------------------------------------------------------------
34
35
$html = '
36
<p class="lall">lall<br></p>
37
<p class="lall">foo</p>
38
<ul><li class="lall">test321<br>foo</li><!----></ul>
39
';
40
41
$document = new \voku\helper\HtmlDomParser($html);
42
43
foreach (find_contains($document, '.lall', 'foo') as $child_dom) {
44
    echo $child_dom->html() . "\n";
45
}
46