file_get_html在实时服务器中返回null,但在localhost中正常工作

时间:2015-12-03 05:23:51

标签: php web-scraping simple-html-dom

我使用以下代码来废弃它在localhost上正常工作但返回

的网页
require_once('advanced_html_dom.php');

$dom = file_get_html('http://exams.keralauniversity.ac.in/Login/index.php?reslt=1');

$rows = array();
foreach($dom->find('tr.Function_Text_Normal:has(td[3])') as $tr){
  $row['num'] = $tr->find('td[2]', 0)->text;
  $row['text'] = $tr->find('td[3]', 0)->text;
  $row['pdf'] = $tr->find('td[3] a', 0)->href;
  if(preg_match_all('/\d+/', $tr->parent->find('u', 0)->text, $m)){
    list($row['day'], $row['month'], $row['year']) = $m[0];
  }

  // uncomment next 2 lines to save the pdf
  // $filename = preg_replace('/.*\//', '', $row['pdf']);
  // file_put_contents($filename, file_get_contents($row['pdf']));
  $rows[] = $row;
}
var_dump($rows);

当我进一步检查时,它显示以下错误

  

“警告:为foreach()提供的参数无效   第477行/home/a7944217/public_html/Results.php“

var_dump当转储显示此对象时,此行$dom->find('tr.Function_Text_Normal:has(td[3])')$dom返回null对象(AdvancedHtmlDom)#1(6){ ["xpath"]=> NULL ["root"]=> NULL ["doc"]=> RECURSION ["dom"]=> NULL ["node"]=> NULL ["is_text"]=> bool(false) }

file_get_html返回null .whats导致这种奇怪的行为在localhost中正常工作,但在实时服务器Page link

中没有

1 个答案:

答案 0 :(得分:2)

你必须设置" allow_url_fopen"在" php.ini"中为TRUE允许通过HTTP或FTP访问文件。 一些主机供应商禁用了PHP" allow_url_fopen"安全问题的标志。

或点击帖子:Simple html dom file_get_html not working - is there any workaround?