【问题标题】:Resolve PHP post string [closed]解析 PHP 帖子字符串 [关闭]
【发布时间】:2015-05-05 21:13:49
【问题描述】:

我有以下帖子字符串:

Name=John&Age=33&Question1=What's+your+gender%3F&Answer1=Male&Question2=What's
+your+education%3F&Answer2=Graduate

我每次都会随机生成大量问题,因此我无法知道传递变量的数量。因此,我正在寻找类似的解决方案:

foreach($postItem as $varr) {
    echo $varr["name"].": ".$varr["value"]."<br />";
}

【问题讨论】:

  • 为什么是“post”字符串?
  • 这是一个 GET URL,而不是一个 POST
  • 抱歉术语。这是一个序列化的 ajax 帖子。不叫“post string”吗?
  • 忽略 A Duff 所说的 - 他们可能不知道 GET 和 POST 有效负载看起来相同。
  • @A.Duff post 变量以与 get vars 相同的方式传递到服务器。

标签: php


【解决方案1】:
//parse query string to an array ($output)
parse_str($postString, $output);

echo $output['Name'] . ': ' . $output['Age'] . '<br />';

//process questions
$i = 1;
while (array_key_exists('Question' . $i, $output)) {
    echo $output['Question' . $i] . ': ' . $output['Answer' . $i] . '<br />';
    $i++;
}

使用的函数http://php.net/parse_str

【讨论】:

    【解决方案2】:

    将它们发布为answer[1]answer[2] 等而不是answer1answer2,PHP 会将它们转换为您的数组。

    【讨论】:

    • 嗯...我应该在$.post 中安排这个吗?我只是使用data: $(form).serialize()。请给我一个简单的例子好吗?
    • 您可以让输入具有正确的名称,例如&lt;input name='answer[1]' /&gt;,然后在您的 PHP 中使用 print_r($_POST['answer']) 来查看它的外观。
    • 啊,就这么简单。好的,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2016-02-02
    • 2023-03-18
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多