我以前使用此代码从BBC网站通过CURL提取一些页面内容,
$c = curl_init('http://news.bbc.co.uk/sport1/hi/football/eng_conf/conference_north_table/default.stm');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec ($c);
if (curl_error($c))
die(curl_error($c));
$startpos = strpos($html, '<table border="1" cellpadding="1" cellspacing="0" class="fulltable">');
$endpos = strpos($html, '<!-- E IINC -->');
$length = $endpos - $startpos;
$rest = substr($html, $startpos,$length);
$rest = str_replace("border=\"1\" cellpadding=\"1\" cellspacing=\"0\"","border=\"0\" cellpadding=\"0\" cellspacing=\"0\"", $rest);
$rest = str_replace('<tr><td colspan="15"><hr/></td></tr>',"", $rest);
$rest = str_replace('<tr>
<td colspan="15">
<div style="padding: 10px 0 0 0;"><img src=" http://newsimg.bbc.co.uk/sol/shared/img/tbl_spc.gif" height="2px" width="100%"></div>
</td>
</tr>
',"", $rest);
echo $rest;
curl_close($c);
以前在一台旧服务器上使用php 5.1.3工作正常,我们已将网站迁移到运行5.4.8的服务器,但是上面的代码不再有用了,有没有这个原因?我看不出任何问题。
如果我在$html
杀了剧本,我会收到以下回复,
LEAGUE TABLE
永久移动
该文件已移至此处。
但是,如果我通过浏览器导航到URL,我可以很好地查看页面,因此它显然没有移动到任何地方(在我们迁移服务器之前Curl请求正在运行的事实支持。
答案 0 :(得分:1)
地址实际上已经移动了。使用以下命令更改第一行:
$c = curl_init('http://news.bbc.co.uk/sport2/hi/football/eng_conf/conference_north_table/default.stm');
上面的代码现在向我展示了包含结果的表格。
答案 1 :(得分:1)