-4

如何将标签<div>添加到第二个标签<p>和最后一个标签</p>之后?(PHP)
例如:

<p>text... short text - first</p>
<p>text, text, text, text... - Second</p>
<p>text, text, text, text... - Third</p>
<p>text, text, text, text... - Fourth</p> 
....       <-- some texts

到:

<p>text... short text - first</p>
<div class="long-text">                             <-- add tag '<div ...>'
   <p>text, text, text, text... - Second</p>
   <p>text, text, text, text... - Third</p>
   <p>text, text, text, text... - Fourth</p>
   ....       <-- some texts
</div>                                              <-- close tag '</div>'
4

1 回答 1

1

正确的方法是使用 dom 文档:有一些示例代码,希望它可以帮助您了解 DOMDocuments 的工作原理,有关更多信息,请访问 php 文档:http: //it1.php.net/manual/es/book.dom .php

代码:

$str = '<p>text... short text - first</p>
<p>text, text, text, text... - Second</p>
<p>text, text, text, text... - Third</p>
<p>text, text, text, text... - Fourth</p>';


$dom = new DOMDocument();
$dom -> loadHTML($str);
$dom->formatOutput = true;

//referencing and setting the needed elements
$body = $dom->getElementsByTagName('body')->item(0);
$p_list = $dom->getElementsByTagName('p');
$div = $dom->createElement('div');
$div->setAttribute('class', 'long-text');

$length = $p_list->length;
//moving the p's to the created $div element
for($i = 0; $i < $length; $i++){
    if($i == 0)continue;
    $item = $p_list->item(1);
    $div->appendChild($item);
}

//appending the filled up $div to the body
$body->appendChild($div);

//output
$string = $dom->saveHTML();
echo $string;
于 2013-04-30T12:07:20.610 回答