Skip to content

Commit 6fb8674

Browse files
author
Ilyas Ronef
committed
Initial commit
0 parents  commit 6fb8674

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# ddMakeHttpRequest
2+
Осуществляет запрос по заданному URL.
3+
4+
## Changelog
5+
### 1.0 (2011-06-16)
6+
* \+ Первая версия.
7+
8+
<style>ul{list-style:none;}</style>

ddMakeHttpRequest.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
/**
3+
* ddMakeHttpRequest.php
4+
* @version 1.0 (2011-06-16)
5+
*
6+
* @desc Осуществляет POST запрос по заданному URL.
7+
*
8+
* @param $url - Адрес, к которому обращаться.
9+
* @param $post - Переменные, которые нужно отправить. Пары ключ-значение разделённые '||', разделитель между ключом и значением — '::'.
10+
* @param $ssl - Соединяемся ли с https.
11+
* @param $headers - Заголовки, которые нужно отправить. Разделитель между строками — '||'.
12+
* @param $uagent - Значение HTTP заголовка "User-Agent: "
13+
*
14+
* @copyright 2011, DivanDesign
15+
* http://www.DivanDesign.biz
16+
*/
17+
18+
if (isset($url)){
19+
$post = isset($post) ? explode('||', $post) : false;
20+
$ssl = (isset($ssl) && ($ssl == '1')) ? true : false;
21+
$headers = isset($headers) ? explode('||', $headers) : false;
22+
23+
//Инициализируем сеанс CURL
24+
$ch = curl_init($url);
25+
26+
//Если необходимо соединиться с https
27+
if ($ssl){
28+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
29+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
30+
}
31+
32+
//Результат должен быть возвращен, а не выведен
33+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
34+
//Запрос будет методом POST типа application/x-www-form-urlencoded (используемый браузерами при отправке форм)
35+
curl_setopt($ch, CURLOPT_POST, 1);
36+
//Не включаем полученные заголовки в результат
37+
curl_setopt($ch, CURLOPT_HEADER, 0);
38+
//При установке этого параметра в ненулевое значение, при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL (это действие выполняется рекурсивно, для каждого полученного заголовка "Location:").
39+
// curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
40+
41+
//Если есть переменные для отправки
42+
if (is_array($post)){
43+
$_post = Array();
44+
//Сформируем массив для отправки, предварительно перекодировав
45+
foreach ($post as $value){
46+
$value = explode('::', $value);
47+
$_post[] = $value[0].'='.urlencode($value[1]);
48+
}
49+
curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $_post));
50+
}
51+
52+
//Если заданы какие-то HTTP заголовки
53+
if (is_array($headers)){curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);}
54+
55+
//Если задан UserAgent
56+
if (isset($uagent)){curl_setopt($ch, CURLOPT_USERAGENT, $uagent);}
57+
58+
//Выполняем запрос
59+
$result = curl_exec($ch);
60+
61+
//Если есть ошибки или ничего не получили
62+
if (curl_errno($ch) != 0 && empty($result)){$result = false;}
63+
64+
//Закрываем сеанс CURL
65+
curl_close($ch);
66+
67+
return $result;
68+
}
69+
?>

0 commit comments

Comments
 (0)