Я пытаюсь отфильтровать возвращаемое местоположение заголовка после POST, используя приведенный ниже PHP-код. Возвращаемое местоположение заголовка необходимо для дальнейшей обработки статуса платежа и сохранения статуса в БД. Поставщик API, похоже, не поддерживает, поскольку он не отвечает вовремя или вообще не отвечает.
$output = curl_exec($curl);
$lines = explode("\n",$output);
$out = array();
$headers = true;
foreach ($lines as $l){
$l = trim($l);
if ($headers && !empty($l)){
if (strpos($l,'location') !== false){
$p = explode(' ',$l);
$out['Headers']['location'] = trim($p[1]);
$url = json_encode($out['Headers']['location']);
echo json_encode($out['Headers']['location']);
}
}
}
Эхо-выход выглядит следующим образом: - "https://sandbox.kopokopo.com/api/v1/payments/c122c1d2-8e07-48d3-8c9d-597829447fda"
Как сделать вывод действительным URL-адресом без «\»? Я буду очень признателен за вашу ценную помощь.
Ваш вызов json_encode
вызывает проблему из-за экранирования значений /
.
Демо: https://3v4l.org/S3VWD
Нет необходимости кодировать одну строку, подобную этой. JSON в основном полезен, когда у вас есть более сложный набор информации (например, несколько отдельных элементов данных), который вы хотите вывести в структурированном виде.
echo $out['Headers']['location'];
это все, что вам нужно в этом случае.
разве
$out['Headers']['location']
уже не ваш действующий URL? почему вы используете json_encode??