Необходимо выполнить операции типа GET для строки.Regex? - PullRequest
0 голосов
/ 10 апреля 2011

я работаю над некоторыми вещами API. Я могу передать некоторые GET-данные «opt» приложению и при сохранении в приложении данные «opt» возвращаются в POST. Все хорошо.

Мне нужно передать больше данных в этот 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-адреса?

или мне нужно регулярное выражение и preg_match ?. Если это так, что такое регулярное выражение для имитации извлечения данных $ _GET ..

1 Ответ

1 голос
/ 10 апреля 2011

Если вы хотите извлечь некоторые данные из строки, которая содержит нечто похожее на строку запроса, вам нужно взглянуть на parse_str().


Например, следующая часть кода:

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

Получил бы вас:

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


При необходимости вы также можете использовать $_GET вместо $data при вызове parse_str().

Это не очень хорошая практика ... Но это сработает.

...