Получить параметры перед URL

Я получаю строку, как это:

result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD

Я использую этот код для кодирования URL:

curl_setopt($ch, CURLOPT_URL, "result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);
$raw = rawurldecode($output);
$pars = parse_url($raw);
parse_str($pars['query'],$result);

Я видел это с функцией parse_str() Я не могу получить параметры раньше &url=, Как я могу получить response=OK? Мне нужно знать, может ли мой сайт продолжить работу.

Как кто-то спросил, это

var_dump($raw) -> string(112) "result=OK&token=330852&url=https://www.premiumline.eu/onshop/vas/login_mp?token=330852&acq=225583&track=12yy2333"

Спасибо, прежде чем!

2

Решение

Я видел это с функцией parse_str() Я не могу получить
параметры перед &url=

Не правда


Ты можешь использовать parse_str () проанализировать все параметры строки запроса, т.е.

$queryStr = "result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD";
parse_str($queryStr);
echo $result;
echo $token;
echo $url;

Выход:

OK
ABCD
http://www.example.com/shopping/vas?token=ABCD

DEMO

2

Другие решения

Кодировать вопросительный знак в %3F ,
В URL допускается только 1 вопросительный знак (это разделитель).

$the_url = urlencode($url);

$str = "result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD";

$params =  parse_str(urlencode($str));
$result = $params['result'];
1

Не видя точного значения $outputЯ бы догадался, что это проблема

$raw = rawurldecode($output);

Здесь вы декодируете свою строку, преобразуя действительную строку запроса в недекодированную строку.

Как вы хотите проанализировать результат как строку запроса — используя parse_str() — вы не должны сначала декодировать его, так как после декодирования он больше не содержит корректного ввода для parse_str(),

0

PHP получает как QUERY_STRING, строку после последнего знака вопроса, так что у вас есть свой собственный? и один в параметре ‘url’, поэтому вы получаете только токен, и один!

сначала закодируйте это, чтобы избежать использования символов url в вашей строке
result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD

пример

$urlParam = "result=OK&token=ABCD&url=http://www.example.com/shopping/vas?token=ABCD";

$urlParamEncoded = urlencode($urlParam);
curl_setopt($ch, CURLOPT_URL, $urlParamEncoded);

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);
$raw = rawurldecode($output);
$pars = parse_url($raw);
parse_str($pars['query'],$result);

Тогда вы можете использовать urldecode в вашем файле сценария назначения.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector