PHP简单HTML DOM解析器问题


PHP Simple HTML DOM Parser issue

我有一段html代码,如下所示:

      <a>
             <img scr=""/>some text here...
      </a>
      <a>
             <img scr=""/>some text here...
      </a>

我需要在这里得到一些文本。。。

我试着这样做:假设上面的部分是在一个html dom中$html

foreach ($html->find('a') as $myText)
{
      echo '-----PPPP---->>>>'.$myText->plaintext.'this is test<br/>';   
}

但它同时打印文本和图像。我只需要文本

->find('a')->plaintext;

应该这样做

我没有使用Simple HTML DOM Parser,而是使用了DomDocument:

$html = <<<HTML
<a><img src=""/>some text here...</a>
<a><img scr=""/>some text here...</a>
HTML;
$dom = new DomDocument();
$dom->loadHTML($html);
$links = $dom->getElementsByTagName("a");
foreach ($links as $link) {
    var_dump($link->textContent);
}

结果在:

string 'some text here...' (length=17)
string 'some text here...' (length=17)

把它分成两部分并在图像标签后打印怎么样:

foreach ($html->find('a') as $myText)
{
   $parts = explode("/>", $myText);
   echo $parts[1];
}

我认为您应该在PHP中使用DOMDocument。

像这样:

$dom = new DOMDocument();
$dom->load($htmlfile);
$atags = $dom->getElementsByTagName('a');
foreach ($atags as $atag) {
    echo $atag->textContent;
}