我有一段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;
}