Php сервер-сервер сообщение?

Я бы хотел, чтобы один сервер отправлял HTTP-запрос другому серверу. Могу ли я сделать это с помощью базовой установки php (в моем случае Dreamhost)? Если да, то укажите мне правильное направление! Благодарность, -Морган

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
5 376
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

На твоем месте я бы использовать Curl.

Обновлено: И это похоже на он поддерживается в DH.

Я также порекомендовал бы Curl, особенно если вам нужно передать множество параметров и т. д. Также стоит помнить, что большинство файловых функций PHP с радостью открывают URL-адреса, а также локальные файлы.

Rik Heywood 19.01.2009 18:44

http://blog.brezovsky.net/en-text-3.html

    function httpSocketConnection($host, $method, $path, $data)
    {
        global $Db;


        $method = strtoupper($method);        

        if ($method == "GET")
        {
            $path.= '?'.$data;
        }    

        $filePointer = fsockopen($host, 80, $errorNumber, $errorString);

        if (!$filePointer) 
        {
            throw new Exception("Chyba spojeni $errorNumber $errorString");
        }

        $requestHeader = $method." ".$path."  HTTP/1.1\r\n";
        $requestHeader.= "Host: ".$host."\r\n";
        $requestHeader.= "User-Agent:      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
        $requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";

        if ($method == "POST")
        {
            $requestHeader.= "Content-Length: ".strlen($data)."\r\n";
        }

        $requestHeader.= "Connection: close\r\n\r\n";

        if ($method == "POST")
        {
            $requestHeader.= $data;
        }            

        fwrite($filePointer, $requestHeader);

        $responseHeader = '';
        $responseContent = '';

        do 
        {
            $responseHeader.= fread($filePointer, 1); 
        }
        while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader));


        if (!strstr($responseHeader, "Transfer-Encoding: chunked"))
        {
            while (!feof($filePointer))
            {
                $responseContent.= fgets($filePointer, 128);
            }
        }
        else 
        {

            while ($chunk_length = hexdec(fgets($filePointer))) 
            {
                $responseContentChunk = '';


                $read_length = 0;

                while ($read_length < $chunk_length) 
                {
                    $responseContentChunk .= fread($filePointer, $chunk_length - $read_length);
                    $read_length = strlen($responseContentChunk);
                }

                $responseContent.= $responseContentChunk;

                fgets($filePointer);

            }

        }




        return chop($responseContent);

    }

Ни одна из стандартных команд чтения / записи потока php не имеет доступа к URL-адресу на Dreamhost (AFAIK) по соображениям безопасности.

Oli 19.01.2009 18:11

Во всяком случае, использование оболочки http-потока казалось бы гораздо более разумным, если бы эта функция была включена.

Ciaran McNulty 19.01.2009 18:44

Другие вопросы по теме