使用simple_html_dom删除字符串的特定部分?

时间:2013-05-03 02:17:37

标签: php simple-html-dom

我使用以下代码从网站中删除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()进一步削减它?

2 个答案:

答案 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