У меня есть следующая строка URL:
HostName = MyHostName; SharedAccessKeyName = ТО; SharedAccessKey = ЗНАЧЕНИЕ + значение =
Мне нужно извлечь пару ключ-значение в массиве. Я использовал parse_str()
в PHP ниже мой код:
<?php
$arr = array();
$str = "HostName=MyHostName&SharedAccessKeyName=SOMETHING&SharedAccessKey=VALUE+VALUE=";
parse_str($str,$arr);
var_dump($arr);
выход:
array (
'HostName' => 'MyHostName',
'SharedAccessKeyName' => 'SOMETHING',
'SharedAccessKey' => 'VALUE VALUE=',
)
Вы можете видеть, что SharedAccessKey
символ +
заменен на space
для этой проблемы, я передал Similiar Question , Отмеченный ответ не является правильным в соответствии с сценарием OP, Это говорит о том, что сначала выполните urlencode()
, а затем передайте его, потому что parse_str()
сначала декодирует URL, а затем разделяет значения ключа, но при этом возвращается объект массива из одного массива, который возвращает всю строку, как в моем случае, его вывод как:
Array
(
[HostName=MyHostName&SharedAccessKeyName=SOMETHING&SharedAccessKey=VALUE+VALUE=] =>
)
Пожалуйста, помогите мне, не только для +
символа, а для всех символов должны быть такими же, как они parse_str()