Php 进程监视器?

Php 进程监视器?,php,curl,Php,Curl,我在PHP中使用cURL来运行一个脚本,这个脚本可能需要一个多小时才能运行。出于调试目的,我希望能够通过查看屏幕(这不是一个公共站点)来查看请求的进度,并查看发生了什么。我试过几件事,但运气不好。我不需要太多的信息,就像“正在加载id 123” 我已经尝试过ob_flush,但显然不再受以下方面的支持: 我也尝试过使用CURLOPT_PROGRESSFUNCTION,但是没有太多的文档,我无法让它工作。我的代码非常简单: $sql = "select item_number from produ

我在PHP中使用cURL来运行一个脚本,这个脚本可能需要一个多小时才能运行。出于调试目的,我希望能够通过查看屏幕(这不是一个公共站点)来查看请求的进度,并查看发生了什么。我试过几件事,但运气不好。我不需要太多的信息,就像“正在加载id 123”

我已经尝试过ob_flush,但显然不再受以下方面的支持:

我也尝试过使用
CURLOPT_PROGRESSFUNCTION
,但是没有太多的文档,我无法让它工作。我的代码非常简单:

$sql = "select item_number from products order by id desc";
$result_sql = $db->query($sql);
while($row = $result_sql->fetch_assoc())
{
//I'd like it to display this as it loads
print '<br>Getting data for item_number: '.$row['item_number']

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://targetsite.com//".$row['item_number']);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
//curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
}
$sql=“按id描述从产品订单中选择项目编号”;
$result\u sql=$db->query($sql);
而($row=$result\u sql->fetch\u assoc())
{
//我希望它在加载时显示这个
打印“
获取项目编号的数据:”。$row[“项目编号”] $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,”http://targetsite.com//“$行['项目编号]); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl,CURLOPT_SSLVERSION,3); //curl_setopt($curl,CURLOPT_头,1); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,TRUE); curl_setopt($curl,CURLOPT_USERAGENT),“Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.9.2.13)Gecko/20101203 Firefox/3.6.13(.NET CLR 3.5.30729)”; curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); curl_setopt($curl,CURLOPT_VERBOSE,1); }

有什么建议吗?我真的不挑剔,这是最简单的方法,可以很快告诉我发生了什么事。

假设您使用的是PHP>=5.3(以前的版本不支持
CURLOPT_PROGRESSFUNCTION
),您可以这样使用它:

function callback($download_size, $downloaded, $upload_size, $uploaded)
{
    // do your progress stuff here
}

$ch = curl_init('http://www.example.com');

// This is required to curl give us some progress
// if this is not set to false the progress function never
// gets called
curl_setopt($ch, CURLOPT_NOPROGRESS, false);

// Set up the callback
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'callback');

// Big buffer less progress info/callbacks
// Small buffer more progress info/callbacks
curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);

$data = curl_exec($ch);

来源:

您使用的是哪个版本的php?来自php info():php版本5.3.24我正在运行5.3。我试过了。它似乎不起作用。函数中的变量返回0。此外,如果我将函数放在“while”循环之前,我会得到错误,它无法识别函数;如果我将函数放在循环中,我会在我已经调用它的第一次迭代之后收到错误。