从没有属性或标签的现场表读取数字

时间:2015-07-24 19:10:43

标签: javascript php html

我有问题。我想创建一个脚本。它应该从其他网站读取两个数字但在div中没有​​id和class:

<td>
  1 IRR = <b>0.0698</b> Gold 
</td>

如何在PHP中没有任何id或类的情况下读取这些数字? 或者如果它在PHP中很难我怎么能在js中做到这一点?还是ajax?

1 个答案:

答案 0 :(得分:0)

对于服务器端(PHP)解决方案,正则表达式始终是最受欢迎的。

// Your HTML variable
$html = "<td>
    1 IRR = <b>0.0698</b> Gold 
</td>";

preg_replace_callback("/<td>(?:[\s\r\n]+)?([0-9\.]+) irr = <b>([0-9\.]+)<\/b> gold(?:[\s\r\n]+)?<\/td>/im", function($m, $numa, $numb)
{
    // Your first number is in $numa
    // And your second is in $numb
}, $html);

对于客户端(js),您可以使用jQuery的过滤器函数和正则表达式。它在性能方面不会令人惊讶,但肯定会有所帮助。

var regexp = /^([0-9\.]+) irr = ([0-9\.]+) gold$/i;

$('td').filter(function()
{
    return $(this).text().trim().match(regexp);
}).each(function()
{
    var numbers = $(this).text().trim().replace(regexp, '$1,$2').split(',');

    // Now `numbers` is an array with the two numbers inside
});