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

前端 未结 4 376
庸人自扰
庸人自扰 2020-12-21 05:35

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 retur

相关标签:
4条回答
  • 2020-12-21 06:13

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

    $html->find('text', 2)->plaintext; // should return 111111
    
    0 讨论(0)
  • 2020-12-21 06:20

    Here is my solution

    I want to get the Primary Text part only.

     $title_obj = $article->find(".ofr-descptxt",0); //Store the Original Tree  ie) h3 tag
     $title_obj->children(0)->outertext = ""; //Unset <br/>
     $title_obj->children(1)->outertext = "";  //Unset the last Span
     echo $title_obj; //It has only first element
    

    Edited: If you have PHP errors Try to enclose with If else or try my lazy code

       ($title_obj->children(0))?$title_obj->children(0)->outertext="":"";
       ($title_obj->children(1))?$title_obj->children(1)->outertext = "":"";
    

    Official Documentation

    0 讨论(0)
  • 2020-12-21 06:21

    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;
    
    0 讨论(0)
  • 2020-12-21 06:35
    $wordlist = array("<p>", "</p>")
    
    foreach($wordlist as $word)
         $string = str_replace($word, "", $string);
    
    0 讨论(0)
提交回复
热议问题