数组到字符串转换DOM解析器

数组到字符串转换DOM解析器

问题描述:

I'm trying to grab the Nth instance of an element using a DOM parser, in this case the first DIV CLASS element and only echo that. I'm getting an error Notice: "Array to string conversion". I've tried using the implode function to join it and make it a string but nothing seems to be working. What am I doing wrong? found the functions here http://code.tutsplus.com/tutorials/html-parsing-and-screen-scraping-with-the-simple-html-dom-library--net-11856 but cant get the same result.

function my_function($str) {
    require_once 'libs/simple_html_dom.php';
    $html = file_get_html($str);
    foreach($html->find('div[class=copy]', 0) as $element){
        $patterns = array();
        $patterns[0] = 'some';
        $patterns[1] = 'cool';
        $replacements = array();
        $replacements[0] = 'really';
        $replacements[1] = 'super';
        $replacements[3] = ' ';ksort($patterns);ksort($replacements);
        echo str_replace($patterns, $replacements, $element);
    }
}

the issue is somewhere here

foreach($html->find('div[class=copy]', 0) as $element)

markup

<div class="copy">somecooltext1</div>
<div class="copy">somecooltext2</div>
<div class="copy">somecooltext3</div>
<div class="copy">somecooltext4</div>
<div class="copy">somecooltext5</div>

I'm trying to capture only the 1st instance and echo it.

ok I figured it out

changed

foreach($html->find('div[class=copy]', 0) as $element)

to

$element = $html->find('div[class=copy]', 0);