PHP: Функции POST и GET запросов готовые к применению

Как то давно я делал пометку о том как делать POST и GET запросы в C#. Сегодня я решил сделать такую же заметку для языка программирования PHP.

Опять таки я не претендую на авторство данных функций, однако найденный вариант решения, на мой взгляд, является вполне достойным и красивым.

Функция для отправки Get запроса в PHP:

//@param $url - адрес запроса, может быть как с GET параметрами так и без. Если адрес с GET параметрами, то параметр $data должен быть null
//@param $data - ассоциативный массив параметров, который будет приписан к строке адреса
//@param $options - дополнительные опции для CURL запроса, если нужно
function RequestGet($url, $data = null, $options = array()) 
  {
    $defaults = array(
        CURLOPT_URL => $url. (strpos($url, '?') === FALSE ? '?' : ''). http_build_query($data),
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 4
    );
    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if(!($result = curl_exec($ch)))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result; 
  }

Функция для оптправки Post запроса в PHP:

//@param $url - адрес запроса
//@param $data - ассоциативный массив данных, которые будут посланы на указанный адрес
//@param $options - дополнительные опции для CURL запроса, если нужно
function RequestPost($url, $data = null, $options = array()) 
  {
    $defaults = array(
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_URL => $url,
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POSTFIELDS => http_build_query($data)
    );

    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if(!($result = curl_exec($ch)))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;  
  }
Запись опубликована в рубрике PHP с метками , , , , , , , . Добавьте в закладки постоянную ссылку.