我有问题。我想创建一个脚本。它应该从其他网站读取两个数字但在div中没有id和class:
<td>
1 IRR = <b>0.0698</b> Gold
</td>
如何在PHP中没有任何id或类的情况下读取这些数字? 或者如果它在PHP中很难我怎么能在js中做到这一点?还是ajax?
答案 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
});