需要在字符串上运行GET类型操作.正则表达式


Need to run GET type operations on a string. Regex?

我正在做一些API的东西。我可以将一些GET数据"opt"传递给应用程序,并在应用程序中保存时,在POST中返回数据"opt"。所有好。

我需要传递更多的数据到这个api,我想稍微保护它,所以我建立了一个包含几个部分的字符串,并编码为base64。

未编码字符串看起来像这样:sec_key=xxxxx&url=../dffd/dfg/dfg.jpg&key=xxxxxx

如果需要,我可以很容易地将其更改为:

sec_key=xxxxx&url=../dffd/dfg/dfg.jpg&key=xxxxxx

在API应用程序中保存时,我收到我编码的字符串,然后解码-一切都好。

问题是,我通常会使用$_GET剥离每个数据部分。我可以使用$_GET以某种方式读取$字符串而不是url吗?

或者我需要一些regex和preg_match吗?如果是,模仿$_GET数据提取的正则表达式是什么?

如果您想从包含看起来像查询字符串的字符串中提取一些数据,您将需要查看 parse_str()


例如,以下代码部分:

$string = 'sec_key=xxxxx&url=../dffd/dfg/dfg.jpg&key=xxxxxx';
parse_str($string, $data);
var_dump($data);

Would get you:

array
  'sec_key' => string 'xxxxx' (length=5)
  'url' => string '../dffd/dfg/dfg.jpg' (length=19)
  'key' => string 'xxxxxx' (length=6)


如果需要,在调用parse_str()时也可以使用$_GET而不是$data

这看起来不像是一个很好的做法…但是会成功的