提问人:Dominic Acoustic 提问时间:11/14/2023 最后编辑:user3783243Dominic Acoustic 更新时间:11/14/2023 访问量:56
如何从 POST 的字符串中提取变量?[复制]
How can I extract variables from a string from POST? [duplicate]
问:
第一次来这里有问题,但我卡住了,无法弄清楚。任何帮助都是值得赞赏的。
我正在发送一个以“###”分隔的字符串作为“有效负载”。我想将字符串解析为数组以获取单个数据字符串。然后,我想遍历单个字符串以提取变量,以便我可以在数据库中输入。我不确定最好的方法,我一直在测试不同的方法,要么获取空字符串响应,要么状态 500 代码。
以下是我从 POST 发送的示例“有效负载”字符串:
key=03968db0386af63d57f48e8cbfd16971&name=LE%252520Tropical%252520Tuffet%252520%25252D%252520Luau&type=Pot%2520with%2520Plant###key=239fa7207c241d8a55743d9988839055&name=Modern%252520Oasis%252520Philodendron%252520Pot%252520%25252D%252520Pink%252520Swirls&type=Pot%2520with%2520Plant
<?php
$payload = $_POST['payload'];
$records = implode("\n", $payload);
foreach($records as $record){
list($key,$name,$type) = explode("###", $record);
echo $key;
}
?>
我希望从 POST 接收有效负载,使用“###”分隔符解析每条记录的单个字符串,从单个字符串中提取键、名称和类型,以便我可以使用 mysqli 添加到我的数据库中。因此,数据库中的每个条目都将有一个键标识符作为主键标识符,以及每个键的统计信息。
谢谢
答:
0赞
Barmar
11/14/2023
#1
看起来您应该使用它来创建查询字符串数组。然后,您可以使用 parse_str()
将每个参数解析为变量。###
name=value
$payload = $_POST['payload'];
$records = explode('###', $payload);
foreach ($records as $record) {
parse_str($record, $vars);
['key' => $key, 'name' => $name, 'type' => $type] = $vars;
echo $key;
}
评论
implode()
创建一个字符串,而不是一个数组。不能在字符串上使用。你是故意用的吗?foreach
explode()
###
explode()
$db_name
$db_table
key
name
type
###