我正在做一些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
。
这看起来不像是一个很好的做法…但是会成功的