使用str_replace将div添加到所有解析器结果

时间:2014-04-15 08:05:02

标签: php parsing str-replace simple-html-dom

我正在使用此字符串来获取所需内容:

echo "<div id=\"lot\">".$table->children(2)->children(0)->plaintext."</div>";

我得到了结果:01 02 03 04 05 06 10 15 17 27 31等。

我需要的是为每个号码添加<div id=\"new\"></div>

<div id=\"new\">01</div> <div id=\"new\">02</div>等等。

我尝试使用下面的代码,但它不起作用

 $table = $box_rezult->find("table.last-d", 0);
        $results = $table->children(2)->children(0)->plaintext;
        $string = $results;
        $var1 = str_replace(" ", "<div id=\"new\"> </div>", $string);
        echo $var1;

感谢任何帮助,谢谢!

感谢所有人!!

3 个答案:

答案 0 :(得分:1)

explode()字符串到数组,然后implode()它:

echo '<div class="new">' . implode('</div><div class="new">', explode(' ', $string)) . '</div>';

我已将id更改为class,因为id's必须是唯一的。

Demo

答案 1 :(得分:0)

对于您的用例,您需要翻转标签以获取分隔符并预先添加并添加一个:

$var1 = "<div id=\"new\">" . str_replace(" ", "</div> <div id=\"new\">", $string) . "</div>";

答案 2 :(得分:0)

假设$string包含您想要的所有数字, 你可以将它爆炸并将每个你想要的元素放在每个数字的标签中,然后使用循环(或implode,如建议的那样)将其应用于字符串:

$numbers = explode(" ", $string);
$var1 = ""; 
foreach($numbers as $number){
  $var1 .= "<div id=\"new\">".$number."</div>";
}

另外,请考虑id attribute uniqueness。请改用class属性。