Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Simple Html Dom get the plain text of div,but avoiding all other tags

I use PHP Simple Html Dom to get some html,now i have a html dom like follow code,i need fetch the plain text inner div,but avoiding the p tags and their content(only return 111111), who can help me?Thanks in advance!

<div>
    <p>00000000</p>
    111111
    <p>22222222</p>
</div>
like image 959
Jack Sun Avatar asked Dec 01 '22 01:12

Jack Sun


2 Answers

It depends on what you mean by "avoiding the p tags".

If you just want to remove the tags, then just running strip_tags() on it should work for what you want.

If you actually want to just return "11111" (ie. strip the tags and their contents) then this isn't a viable solution. For that, something like this may work:

$myDiv = $html->find('div'); // wherever your the div you're ending up with is
$children = $myDiv->children; // get an array of children
foreach ($children AS $child) {
    $child->outertext = ''; // This removes the element, but MAY NOT remove it from the original $myDiv
}
echo $myDiv->innertext;
like image 194
Joe Avatar answered Dec 04 '22 03:12

Joe


If you text is always at the same position , try this:

$html->find('text', 2)->plaintext; // should return 111111
like image 21
Enissay Avatar answered Dec 04 '22 03:12

Enissay