2013-05-03 31 views
0

我使用下面的代码从网站剪出一个div。使用simple_html_dom删除字符串的特定部分?

$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()进一步削减?

+1

看到我更新.. – 2013-05-03 04:54:23

回答

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 
+0

这看起来似乎是工作,但我不知道怎么用这个。它是JavaScript吗?我将所有的代码复制到了我的页面中,它给了我一个空白页面。我也把'

1

不要取下sub,以后你可能需要它。一个简单的正则表达式将工作:

preg_match('/\d+/', $html->find('div.ismSBValue div', 0)->text(), $match); 
echo($match[0]); // 58