Нужно уточнить, что вы сейчас делаете — браузер переадресовывается через header("Location: ...") или через ссылку/JS? Ниже несколько вариантов, как «вызвать» внешнюю ссылку, но остаться на той же странице.
1) Серверный запрос (PHP, никаких переходов у пользователя)
- если хотите просто получить результат запроса по $final_url на сервере и дальше обработать/показать его — используйте cURL или file_get_contents. Браузер при этом останется на той же странице.
Пример с cURL:
```
$final_url = $base_url . 'public_key=' . urlencode($link);
$ch = curl_init($final_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // при необходимости следовать редиректам
$response = curl_exec($ch);
$err = curl_error($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($response === false) {
// обработка ошибки
echo "Ошибка: $err";
} else {
// используйте $response, но пользователь остаётся на той же странице
echo $response;
}
```
Если allow_url_fopen включён, можно проще:
```
$response = file_get_contents($final_url);
```
2) Вызвать URL с клиентской стороны (AJAX) — без перехода
- если хотите, чтобы браузер асинхронно отправил запрос и остался на странице, используйте fetch / XMLHttpRequest:
Пример (JS fetch):
```
fetch('<?php echo $final_url; ?>')
.then(res => res.text())
.then(text => {
console.log(text); // обработка ответа
})
.catch(err => console.error(err));
```
3) Открыть в новой вкладке/окне (если нужно показать страницу пользователю, но не уводить с текущей)
- обычная ссылка с target="_blank" или window.open:
```
echo '<a href="'.$final_url.'" target="_blank">Открыть</a>';
// или
echo '<button onclick="window.open(\''. $final_url .'\')">Открыть в новом окне</button>';
```
4) Встраивание в iframe
- можно загрузить внешний URL в скрытый/видимый iframe, тогда основная страница не покинется.
Важно:
- Если вы сейчас используете header("Location: $final_url"); — это и есть перенаправление. Чтобы «остаться», просто не вызывать header() и вместо этого применить один из подходов выше.
- Для серверных запросов учитывайте CORS/политику API и возможные ограничения у удалённого сервера (авторизация, rate limit и т.д.).
Если напишите, какой код сейчас делает редирект (например header(...) или JS), и что именно вы хотите получить от $final_url (получить HTML, JSON, пробросить пользователя в отдельной вкладке и т.п.), дам точный пример под ваш случай.