Как то давно я делал пометку о том как делать 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; }