Idered
7/24/2012 - 11:07 PM

curlQuery

curlQuery

/**
 * Pobiera dane ze wskazanego adresu URL poprzez cURL.
 *
 * @todo Ta funkcja jest zbyt ogólna, by znajdować się w komendach czata.
 * @param string $url Adres URL.
 * @param array $headers Nagłówki, jakie należy przesłać razem z zapytaniem.
 * @param bool $isPost Informacja, czy zapytanie ma zostać zadane metodą POST. Jeśli false, będzie użytwa metoda GET.
 * @param mixed $data Dane do przesłania metodą post.
 * @return string
 */
private function curlQuery($url, array $headers = array(), $isPost = false, $data = array())
{
    $connection = curl_init();
    curl_setopt_array($connection, array(
        CURLOPT_USERAGENT => 'Graffika.pl cURL',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_URL => $url,
        CURLOPT_TIMEOUT => 7,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_SSLVERSION => 3
    ));

    if (!empty($headers)) {
        curl_setopt($connection, CURLOPT_HTTPHEADER, $headers);
    }

    if ($isPost) {
        curl_setopt($connection, CURLOPT_POST, true);
    } else {
        curl_setopt($connection, CURLOPT_HTTPGET, true);
    }

    if ($isPost && !empty($data)) {
        curl_setopt($connection, CURLOPT_POSTFIELDS, $data);
    }

    $result = curl_exec($connection);

    if (curl_errno($connection) > 0) {
        return false;
    }

    return $result;
}