当我需要获取外部 html 内容时,我使用的代码总是对我有用,但是从昨天开始,该代码不再有效。
这是代码设置
ini_set('display_errors', 1);
$url ='https://www3.bcb.gov.br/ptax_internet/consultarTodasAsMoedas.do?method=consultaTodasMoedas';
$site = file_get_contents($url);
此链接是来自巴西中央银行的货币转换器,每日更新(工作日)。
我需要从此页面获取 USD 和 EUR 值,当我尝试在 Table 中获取值时,它返回空但是当我在 div 中获取值时,一切都按预期工作。
如果我转到页面源代码,我可以看到:
<tr class="fundoPadraoBClaro2">
<td align="CENTER">220</td>
<td align="CENTER">A</td>
<td align="CENTER">USD</td>
<td align="right">2,2743</td>
<td align="right">2,2748</td>
<td align="right">1,0000</td>
<td align="right">1,0000</td>
</tr>
要获得美元价值,我使用:
$data1 = explode('<td align="CENTER">USD</td><td align="right">', $site);
$data2 = explode('</td>',$data1[1]);
$usd = $data2[0];
但不工作,这会返回空值。
但是,如果我使用相同的代码来获取 DIV 中的内容,一切正常。
源代码:
<div align="center">
<strong>Cotações de todas as moedas no dia 09/08/2013 às 13:00 (horário de Brasília), conforme fechamento PTAX.</strong>
</div>
PHP代码:
$data1 = explode('todas as moedas no dia', $site);
$data2 = explode('conforme fechamento PTAX.',$data1[1]);
$result = $data2[0];
我得到了我的预期 - “09/08/2013 às 13:00 (horário de Brasília)”
谁能告诉我我错过了什么?