gpt4 book ai didi

PHP脚本在通过命令行而不是通过浏览器运行时给出输出

转载 作者:行者123 更新时间:2023-12-04 18:36:54 26 4
gpt4 key购买 nike

当我通过命令行运行我的程序时,我的 PHP 脚本可以正常工作并正确输出。

但是当我通过浏览器运行它时,它处理得很好,但我打印的输出 - 没有显示。

(注意:我的脚本在 while 循环中运行,它将永远运行)

代码 - 我正在编写我的类文件的一部分

public function call($n) {

global $argv;
$this->response = null;
$this->corr_id = uniqid();

$msgBody = 'test msg';

//Create queue
$this->createQueue($queueName);

$msg = new AMQPMessage(
(string) $msg_body,
array('correlation_id' => $this->corr_id,
'reply_to' => $this->callback_queue,
'priority' => 2)
);
$this->channel->basic_publish($msg, '', $queueName);

while(!$this->response) {
$this->channel->wait();
}

return $this->response;

}

$response = call();

createQueue() 函数在另一个类中
function createQueue($queueName='')
{
$exchange = 'router';
$queue = 'msgs';
$consumer_tag = 'consumer';

$connection = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
$channel = $connection->channel();

$channel->queue_declare($queueName, false, false, false, false);

echo " [x] Awaiting for message\n";
$callback = function($req) {
$n = $req->body;
echo "$n\n";

$msg = new AMQPMessage(
'msg',
array('correlation_id' => $req->get('correlation_id'))
);

$req->delivery_info['channel']->basic_publish(
$msg, '', $req->get('reply_to'));
$req->delivery_info['channel']->basic_ack(
$req->delivery_info['delivery_tag']);
};

$channel->basic_qos(null, 1, null);
$channel->basic_consume($queueName, '', false, false, false, false, $callback);

while(count($channel->callbacks)) {

$channel->wait();

}
}

最佳答案

我们可以 :)

看看http://www.php.net/manual/en/function.flush.php - 当您需要在响应完成之前输出时,这是永久运行脚本的方法。

还可以看看那里的第一个用户评论 - 它是关于发送 4KB block 与 str_pad()因为浏览器往往在达到特定数量的数据之前根本不显示任何内容。

关于PHP脚本在通过命令行而不是通过浏览器运行时给出输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com