我使用以下代码从网站中删除div。
$url = 'http://mypage.com/index.php';
$html = @file_get_html($url);
$GetScore = $html->find('div[class=ismSBValue]',0);
echo $GetScore;
这会返回.....
<div class="ismSBValue">
<div> 58
<sub>pts</sub>
</div>
</div>
如何仅删除58值?
我可以做以下......
$GetScore = $html
->find('div[class=ismSBValue]',0)
->find('div',0)
->innertext;
将其归结为此......
58
<sub>pts</sub>
有没有办法使用simple_html_dom排除<sub>
标记?还是我坚持使用str_replace()
或strpos()
进一步削减它?
答案 0 :(得分:1)
克隆然后删除你不想要
JAVASCRIPT
$(function(){
var a = $('.ismSBValue').clone();
a.find('sub').remove();
console.log($.trim(a.text()));
})
PHP
$html = str_get_html('<div class="ismSBValue">
<div> 58
<sub>pts</sub>
</div>
</div>');
$html->find('div[class=ismSBValue]',0)->find('div',0)->find('sub',0)->innertext = '';
$a = $html->find('div[class=ismSBValue]',0)->plaintext;
echo trim($a); //58
答案 1 :(得分:1)
请勿删除sub
,稍后您可能需要它。一个简单的正则表达式将起作用:
preg_match('/\d+/', $html->find('div.ismSBValue div', 0)->text(), $match);
echo($match[0]); // 58