在发出两个cURL请求之后,第二个请求我想捕获返回的HTML并将其作为字符串传递回调用函数。现在它改为将HTML输出到客户端。我与ob_end_clean()
和ob_get_contents()
混淆不成功。
这是我现在拥有的......
function stuff()
{
//user/pass stuff omitted.
$ch = curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookies);
curl_setopt($ch,CURLOPT_POSTFIELDS,"user=$cp_user&pass=$cp_pwd");
curl_setopt($ch,CURLOPT_TIMEOUT,100020);
ob_start();
$f = curl_exec($ch);
$h = curl_getinfo($ch);
$p0 = explode('cpsess',$h['url']);
$p1 = explode('/',$p0[1]);
ob_end_clean();
/***/
ob_start();
curl_setopt($ch,CURLOPT_URL,$q2a.$p1[0].$q2b);
curl_setopt($ch,CURLOPT_HEADER, 0);
curl_exec($ch);
$r = ob_get_contents();
ob_end_clean();
/***/
curl_close($ch);
return $r;
}
答案 0 :(得分:1)
使用
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
然后使用
捕获返回的内容function stuff() {
// function code before
$r = curl_exec($ch);
// function code after
return $r;
}
请勿使用任何ob_
函数,因为CURLOPT_RETURNTRANSFER
未明确设置为true
或1
curl将不会返回或打印出任何内容来自请求。