【问题标题】:PHP vs Django argument separatorsPHP vs Django 参数分隔符
【发布时间】:2011-05-06 23:57:07
【问题描述】:

我一直在用 PHP 重写一个 Django 服务器(我有很多理由这样做),并且遇到了参数问题,例如$_REQUEST.

Django 期望参数的格式为:id=822;date_accepted=2011-03-30 17:33:41;(这是客户端使用的,所以这是我想要使用的)。 但是,PHP 期望参数的格式为:id=822&date_accepted=2011-03-30 17:33:41;

所以,当我在 PHP 中读取 $_REQUEST 时,它会显示为:"id" => "822;date_accepted=2011-03-30 17:33:41;",而不是:"id" => "822", "date_accepted" => "2011-03-30 17:33:41"

有没有办法正确分离参数?

【问题讨论】:

  • 那么,.. 你现在到底在问我们什么?某处缺少一个问题。
  • 根据http参数rfc两者都是有效的。那么?
  • 只是出于好奇,您的一些原因是什么?
  • @zeekay 我很谨慎地回答这个问题,如果只是因为它是互联网,但我会满足你的好奇心:我对网络编程几乎一无所知,但用 Django + 活塞编写了初始服务器因为我非常了解 Python,而且人们似乎非常喜欢 Django。然而,维护我们的(相对简单——比如 200 行)服务器,我发现 Django 太过分了(它的 CRUD 模型与我们的支持数据不匹配),而且不透明且令人困惑。我想当我真正拥有足够的网络开发人员时会很棒,但现在一次学习太多了。
  • 我很感激。如果您更愿意使用 python,您可能会发现 flask 或其他更适合这种情况的微框架。

标签: php django arguments


【解决方案1】:

您可以尝试将其添加到您的.htaccess 文件中吗?

php_value arg_separator.input ";"

【讨论】:

  • 没有变化。我应该提一下(如果不是很明显的话),我也在里面做了一堆 Rewrite* 的东西。
  • 其实我很困惑!它确实工作!伙计,我对网络东西真是个菜鸟。感谢您的提示!
【解决方案2】:

替换;使用 & 并通过 parse_str 运行它

$str = $_SERVER['QUERY_STRING'];//id=822;date_accepted=2011-03-30 17:33:41;
parse_str( str_replace( ';', '&', $str ), $_GET );
print_r($_GET);

【讨论】:

  • 嘿,这行得通,虽然它的蛮力让我很难过。 (不过,谢谢!)
  • 啊,实际上,这只适用于我的一部分查询; $_SERVER['QUERY_STRING'] 只被 GET 请求占用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 2016-11-21
相关资源
最近更新 更多