如何"refresh" file_get_contents('php://input')的状态?
How to "refresh" the status of file_get_contents('php://input')?
我正在尝试使用 PHP 代码为电报创建一个 BOT。
基本上用户必须在插入之间进行选择:
1) 姓名
2) 姓氏
3) 地址
选择姓氏,他必须写下他的姓氏,我想将它存储到一个变量中,但是,如果我使用 $update = file_get_contents('php://input')
,我总是读取 "surname"(这是用户的第一个输入)
所以我认为我的问题是:如何在我的程序的特定 "moment" 中更改 file_get_contents('php://input')
的内容?
请阅读我的代码了解更多详情,非常感谢!!!
<?php
$botToken = "MYTOKEN"; //token
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents('php://input'); //updates from telegram (JSON format)
$update = json_decode($update, TRUE);
$chatId = $update['message']['from']['id'];
$text = $update['message']['text'];
switch($text)
{
case "name";
sendMessage ($chatId,"You write name");
break;
case "surname";
sendMessage ($chatId,"You write surname");
sendMessage ($chatId,"Insert your surname");
/* here is my problem: what i have to do to "read" what the
user write now? i want to store his surname into a new
variable*/
break;
case "address";
sendMessage ($chatId,"You write address");
break;
default;
sendMessage ($chatId,"You don't write a valid command");
break;
}
function sendMessage($chatId,$text)
{
$url = $GLOBALS[website]."/sendMessage?
chat_id=$chatId&text=".urlencode($text);
file_get_contents($url);
}
?>
我是那些 "hack" 使用 Javascript 仅发送输入的数据和输入的 HTML 元素的人之一,但您专门要求 php://输入.
基本上,php://input returns请求的HTTP-headers之后的所有原始数据,不考虑内容类型。
因此您可以使用 XPath 或 domdocument (https://www.php.net/manual/en/class.domdocument.php) 从您从 "php://input" 流中获得的内容中通过 ID 查找元素。
我正在尝试使用 PHP 代码为电报创建一个 BOT。
基本上用户必须在插入之间进行选择: 1) 姓名 2) 姓氏 3) 地址
选择姓氏,他必须写下他的姓氏,我想将它存储到一个变量中,但是,如果我使用 $update = file_get_contents('php://input')
,我总是读取 "surname"(这是用户的第一个输入)
所以我认为我的问题是:如何在我的程序的特定 "moment" 中更改 file_get_contents('php://input')
的内容?
请阅读我的代码了解更多详情,非常感谢!!!
<?php
$botToken = "MYTOKEN"; //token
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents('php://input'); //updates from telegram (JSON format)
$update = json_decode($update, TRUE);
$chatId = $update['message']['from']['id'];
$text = $update['message']['text'];
switch($text)
{
case "name";
sendMessage ($chatId,"You write name");
break;
case "surname";
sendMessage ($chatId,"You write surname");
sendMessage ($chatId,"Insert your surname");
/* here is my problem: what i have to do to "read" what the
user write now? i want to store his surname into a new
variable*/
break;
case "address";
sendMessage ($chatId,"You write address");
break;
default;
sendMessage ($chatId,"You don't write a valid command");
break;
}
function sendMessage($chatId,$text)
{
$url = $GLOBALS[website]."/sendMessage?
chat_id=$chatId&text=".urlencode($text);
file_get_contents($url);
}
?>
我是那些 "hack" 使用 Javascript 仅发送输入的数据和输入的 HTML 元素的人之一,但您专门要求 php://输入.
基本上,php://input returns请求的HTTP-headers之后的所有原始数据,不考虑内容类型。
因此您可以使用 XPath 或 domdocument (https://www.php.net/manual/en/class.domdocument.php) 从您从 "php://input" 流中获得的内容中通过 ID 查找元素。