我正在尝试创建一个Telegram机器人,并尝试在我的文件开头发送一个Header 200代码。当我运行此代码时,headers_sent()
在代码末尾返回false。我该如何解决这个问题?
<?php
http_response_code(200);
set_time_limit(20000);
$botToken = "259050740:AAHRRa8zLKwKmRhY_W3u0YlEYovbLEumCZM";
$website = "https://api.telegram.org/bot" . $botToken;
$update = file_get_contents("php://input");
$updateArray = json_decode($update, TRUE);
$SenderID = $updateArray['message']['chat']['id'];
$Message = $updateArray['message']['text'];
$updateId = $updateArray['update_id'];
/*$ids = explode("\n",file_get_contents("used.txt"));
foreach($ids as $id) {
if($id == $updateId) {
exit(0);
}
}
$fp = fopen("used.txt", 'a');
fwrite($fp, $updateId."\n");
fclose($fp);*/
//file_get_contents($website . "/sendmessage?chat_id=" . $SenderID . "&text=1%0A%0A".urlencode($update));
sleep(5);
//file_get_contents($website . "/sendmessage?chat_id=" . $SenderID . "&text=2%0A%0A".urlencode($update));
?>
答案 0 :(得分:0)
你无法修复&#34;这个。函数headers_sent()
将返回PHP是否已发送HTTP标头,因为该脚本还已发送了一些内容(通过echo
,print
或任何其他输出内容的函数打印字符)。这是一个脚本,用于确定对headers()
的调用是否能够添加更多标题,因为它们未被发送。
您显示的代码不会输出任何内容,因此PHP无需发送标题。它们可能会在脚本结束后发送 - 此时您无法恢复脚本,以便询问headers_sent()
标头是否已发送。