2 回答

TA貢獻1872條經(jīng)驗 獲得超4個贊
它將使用 preg_split() 從 $result_information 創(chuàng)建一個數(shù)組,然后替換數(shù)組的第一個元素。
<?php
$result_information = "<p>parrafo 1</p> <p>parrafo 2</p> <p>parrafo 3</p> <p>parrafo 4</p>";
$result_information = preg_replace("/<\/p>(.*?)<p>/", "<p></p>", $result_information); # remove spaces
$array = preg_split("/<p>(.*?)<\/p>/", $result_information, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
$array[0] = "cambio";
$array[2] = "cambio";
$result_information1 = "<p>" . implode($array, "</p><p>"). "</p>";
echo $result_information1;
?>

TA貢獻1846條經(jīng)驗 獲得超7個贊
恕我直言,最好使用 DOMDocument 來處理這個問題。一如既往,這比使用替換/正則表達式更復雜 - 但通常值得付出努力,因為它將內(nèi)容處理為 HTML 而不僅僅是純文本。
能夠處理文檔片段的主要代碼很大程度上基于https://stackoverflow.com/a/29499398/1213708,我所做的只是添加了在您之后引用段落的能力。
p 標簽部分只是
$pTags = $doc->getElementsByTagName("p");
$pTags[1]->textContent = "cambio";
所以首先是獲取 p 標簽的列表 - 你現(xiàn)在有一個數(shù)組,你可以在第二行代碼中設置它。
$result_information = "<p>parrafo 1</p> <p>parrafo 2</p> <p>parrafo 3</p>";
$doc = new DOMDocument();
$doc->loadHTML("<div>$result_information</div>");
$pTags = $doc->getElementsByTagName("p");
$pTags[1]->textContent = "cambio";
$container = $doc->getElementsByTagName('div')->item(0);
$container = $container->parentNode->removeChild($container);
while ($doc->firstChild) {
$doc->removeChild($doc->firstChild);
}
while ($container->firstChild ) {
$doc->appendChild($container->firstChild);
}
echo $doc->saveHTML();
- 2 回答
- 0 關注
- 158 瀏覽
添加回答
舉報