Есть ли способ настроить прокси по параметрам URL? Сценарий должен запускаться на сервере Ubuntu. Или можно сделать это с помощью кальмара или чего-то подобного?
Как http://proxyserver.com:3128/http://google.de
Я уже пробовал некоторые скрипты PHP-прокси, но он не работает с ним. Он должен открыть файл в виде потока, но с некоторыми сценариями загружает весь файл, а затем я получаю вывод или не работает с Safari, и в каждом браузере я получаю ошибки с javascript для получения информации о потоке.
Вероятно, это помогает, почему он не работает на сафари. Я не знаю, как я могу редактировать заголовки больше. Принимаются диапазоны и т.д.
Я решил это.
Я использовал сервер nginx с параметром proxy_pass
Если вы хотите, чтобы php proxy начинался с вас, вы должны пойти с Glype Proxy
Кроме того, ваш URL-адрес http://proxyserver.com:3128/http://google.de
недействителен и считается неправильным URL.
Чтобы исправить это, вам нужно избежать другого URL-адреса (с запросом или так). например $URL_in_PHP = "http://proxyserver.com:3128/?url=".urlencode('http://google.de');
var URL_in_javascript = "http://proxyserver.com:3128/?url="+encodeURI('http://google.de');
и попросите ваш прокси-сервер перейти к $_GET['url']
Другое редактирование
Попробуйте этот код здесь. Почта выполнена.
$url = $_GET["url"];
$method = $_SERVER["REQUEST_METHOD"];
$data = array($_POST);
$options = array(
"http" => array(
"header" => "Content-type: application/x-www-form-urlencoded\r\n",
"method" => $method,
"content" => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$filter = "/(http|https|ftp|ftps)(:\/\/)/i";
$result = preg_replace($filter, "http://YOURDOMAIN.com/FOLDER/LOCATIONOFTHEPROXY.php?url=$1$2", $result);
echo $result;
var_dump($result);
РЕДАКТИРОВАТЬ
Здесь я нашел код POST с использованием PhP. Только теперь это удалось реализовать.
<?php
$url = "url to post to;
$data = array("comment" => "Testing PhP Post", "name" => "A PhP Script");
// use key "http" even if you send the request to https://...
$options = array(
"http" => array(
"header" => "Content-type: application/x-www-form-urlencoded\r\n",
"method" => "POST",
"content" => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }
echo $result;
var_dump($result);
?>
Вы пробовали file_get_contents()
?
Попробуй это:
<?php
echo file_get_contents($_GET["url"]);
?>
Вызовите файл с запросом наподобие ?url=http://google.com/
.
file_get_contents
, а не get_file_contents
.