我正在尝试使用类中的curl headerfunction选项。我已经尝试将函数正常放在类中,但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。那么我该怎么办呢?
答案 0 :(得分:2)
您需要了解如何将对象方法指定为callbacks:
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'));
}
}