2013-03-29 99 views
0

我需要使用for循环来下载网站结果来编译它们。CURL请求下载结果

Here's a sample link

(请注意,这是一个ASP请求,这显示这些参数的网页)

我用卷曲的要求写了下面的代码,让我这个(我需要提交表单):

<?php 
for ($i=10; $i<500; $i++) { 
$m = $i*10; 
$url = 'http://sanskritischool.com/ProgramFiles/ProgressReport/Report/2012-2013/REPORTCARD_XI_XIII.aspx?'; 
$fields = array(
        'ClassId' => 334, 
        'TermId' => 95, 
        'StudentId' => $m, 
        'SelectValue' => 1, 
        'strTerm' => urlencode('SECOND TERM'), 
        'SelectType' => urlencode('Academic '), 
        'ClassName' => urlencode('XI(A)') 
       ); 

//url-ify the data for POST 

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

echo $fields_string; 

//CURL POST 

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

$result = curl_exec($ch); 
curl_close($ch); 

//Reset string 

$fields_string=''; 
} 
?> 

虽然循环运行,它会返回所有错误的错误(Object reference not set to an instance of an object

截图: http://imm.io/11by4

如何成功运行此循环并获得结果?

对不起,如果我问一个天真的问题,我只有16岁,我是PHP新手。如果你能帮忙,我会很高兴!

回答

0

您构建查询字符串,但不会将其追加到$url的末尾。 你应该这样做:

$url = $url.$fields_string;