我正在尝试使用类中的curl-headerfunction opt。我试过正常地把函数放在类中,但curl找不到它们。所以我把它们放在我需要的函数中
$ht = array();
$t = array();
function htWrite($stream,$buffer)
{
$ht[] = $buffer;
return strlen($buffer);
}
function tWrite($stream,$buffer)
{
$t[] = $buffer;
return strlen($buffer);
}
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'htWrite');
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'tWrite');
当我在htWrite中为缓冲区放入一个echo语句时,它的回声很好。但如果我稍后在$ht上做一个print_r声明,它会说它是空的。进一步的调查表明,它正在创建自己的$ht变量,因为如果我删除该行,根据函数,$ht为null。那么我该怎么办才能解决这个问题呢?
您需要了解如何将对象方法指定为回调:
class Foo {
public function Bar() {
// do whatever
}
public function Test() {
$ch = curl_init('http://www.google.com');
curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, 'Bar'));
}
}