#php #laravel #post #laravel-5
#php #laravel #Публикация #laravel-5
Вопрос:
data=%7B%22password%22%3A%221234%22%2C%22username%22%3A%22user1234%22%7Damp;
У меня есть URL этого типа из запроса POST, и в расшифрованном виде он выглядит следующим образом…
data = {"password":"1234", "username":"user1234"}amp;
В моем случае я пытаюсь декодировать с помощью Laravel, но это не работает должным образом. Как я могу этого добиться?
<?php
function login(Request $request)
{
$requestData = $request->request->get('data');
$data = json_decode($requestData, true);
$username = $data['username'];
$password = $data['password'];
return new JsonResponse($username);
}
Комментарии:
1. Можете ли вы показать HTML-код? Почему данные отформатированы таким образом? Кстати, вы должны использовать
$request->get('data')
.
Ответ №1:
Что-то вроде этого должно сработать:
$url = "data={"password":"1234","username":"user1234"}amp;";
$decode = urldecode($url);
$sub = substr($decode, strpos($decode,'{') strlen('{'),strlen($decode));
$sub2 = substr($sub,0,strpos($sub,'}'));
$explode = explode(',', $sub2);
$data = array();
foreach($explode as $arrayData)
{
$arrayData = explode(":",$arrayData);
$key = substr($arrayData[0], 1, -1);
$value = substr($arrayData[1], 1, -1);
$data[$key] = $value;
}
print_r($data);