Апр 092017
 

В PHP CURL POST руководство, Мы будем объяснять как использовать HTTP GET / POST запросы с PHP CURL library.

В данной статье ниже мы приводим примеры работы с данным протоколом

1) Отправить HTTP GET Запрос с CURL

2) Отправить HTTP POST Запрос с CURL

3) Отправить Random User-Agent в Запросе

4) Обработка перенаправление redirects ( HTTP 301, 302 )

5) Ошибки обработки ( Handle Errors ).

Почему мы используем PHP CURL ?

Отправить HTTP GET запрос, простой способ использовать метод file_get_contents().

file_get_contents('http://it.w-develop.com')

Но для использования POST запроса и использовать Обработчик ошибок не так просто в месте с командой file_get_contents().

Отправить HTTP запрос очень просто с PHP CURL. Вам надо выполнить четыре шага для отправки запроса

Шаг 1). Инициализация CURL сессии
Шаг 2). Заполняем options для CURL сессии
curl_setopt( $ch, CURLOPT_URL, "http://it.w-develop.com" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
//curl_setopt( $ch, CURLOPT_HEADER, true ); // Если вы хотите использовать заголовки

CURLOPT_URL -> URL для загружки
CURLOPT_HEADER -> добавляем header/not
CURLOPT_RETURNTRANSFER -> если true, информация вернется как строка, а не выводит ее.

Полный список опций, смотри в документации PHP Documentation.

Шаг 3). Загружаем CURL сессию.
$output=curl_exec($ch);
Шаг 4). Зарываем сессию
curl_close($ch);
Note: Вы можете проверить, включен CURL enabled/not со следующим кодом.
if( is_callable( 'curl_init' ) ){
   echo "Enabled";
} else {
   echo "Not enabled";
}

1.PHP CURL GET Пример
You can use the below code to send GET request.

function httpGet( $url ) {

    $ch = curl_init();  
 
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
//  curl_setopt( $ch, CURLOPT_HEADER, false ); 
 
    $output=curl_exec( $ch );
 
    curl_close( $ch );

    return $output;

}
 
echo httpGet("http://it.w-develop.com");

2.PHP CURL POST Пример
You can use the below code to submit form using PHP CURL.

function httpPost( $url, $params ) {

   $postData = '';
   //create name value pairs seperated by &
   foreach( $params as $k => $v ) {
      $postData .= $k . '='.$v.'&';
   }
   $postData = rtrim( $postData, '&' );
 
   $ch = curl_init();
 
   curl_setopt( $ch, CURLOPT_URL,$url );
   curl_setopt( $ch, CURLOPT_RETURNTRANSFER,true );
   curl_setopt( $ch, CURLOPT_HEADER, false );
   curl_setopt( $ch, CURLOPT_POST, count($postData ) );
   curl_setopt( $ch, CURLOPT_POSTFIELDS, $postData );
 
   $output = curl_exec( $ch );
 
   curl_close( $ch );

   return $output;
 
}

How to use the function:

$params = array(
   "name" => "Ravishanker Kusuma",
   "age" => "32",
   "location" => "India"
);
 
echo httpPost( "http://it.w-develop.com/examples/php/curl-examples/post.php", $params );

3.SEND RANDOM USER-AGENT IN THE REQUESTS
You can use the below function to get Random User-Agent.

function getRandomUserAgent() {
    $userAgents=array(
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
        "Opera/9.20 (Windows NT 6.0; U; en)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50",
        "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]",
        "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; fr; rv:1.7) Gecko/20040624 Firefox/0.9",
        "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/48 (like Gecko) Safari/48"       
    );
    $random = rand(0,count($userAgents)-1);
 
    return $userAgents[$random];

}

Используется CURLOPT_USERAGENT, Вы можете установить User-Agent string.

curl_setopt( $ch, CURLOPT_USERAGENT, getRandomUserAgent()) ;

4. HANDLE REDIRECTS (HTTP 301,302)
Обрабатывать URL redirects, set CURLOPT_FOLLOWLOCATION to TRUE.Максимальное количество переадресаций можно контролировать, используя CURLOPT_MAXREDIRS.

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);
curl_setopt($ch,CURLOPT_MAXREDIRS,2);//only 2 redirects

5. КАК ОБРАТИТЬ ОШИБКИ CURL
мы можем использовать методы curl_errno(), curl_error(), Чтобы получить последние ошибки для текущего сеанса.
curl_error( $ch ) -> returns error as string
curl_errno( $ch ) -> returns error number

Вы можете использовать приведенный ниже код для обработки ошибок.

function httpGetWithErros( $url ) {

    $ch = curl_init();  
 
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
 
    $output=curl_exec( $ch );
 
    if ( $output === false ) {

        echo "Error Number:" . curl_errno( $ch ) . "
"; echo "Error String:" . curl_error( $ch ); } curl_close($ch); return $output; }

Вывод полного списока ошибок, refer CURL errors

Июл 112014
 

Заходим в раздел Шлюз, и нажимаем добавить шлюз.

ID транка : ID_79288888888
Комментарий : 79288888888
Исходящий номер :
Технология : SIP
Имя хоста : sdc.megafon.ru
Пользователь : 79288888888@multifon.ru
Пароль : PASSword
Порт : 5060
NAT : Yes
Обработка входящих : 79288888888
Кодеки : Поумолчанию
Регистрация : Да
Режим DTMF : rfc2833
Логин : 79288888888@multifon.ru
Пароль : PASSword@79288888888
Сервер : sdc.megafon.ru
Входящий номер : 79288888888
Дополнительные настройки : Да Нет
Контроль медиа : Да Нет
Контроль качества : Выключен
InSecure : Invite
Поддержка факсов (T38) : Нет
Поддержка видео : Нет
Fromuser : 79288888888
Fromdomain : multifon.ru
Контекст :
Дополнительные настройки :
Задействовать : Да
Приоритет Callerid шлюза : Нет

 

welltime

Информация взята

Фев 192012
 

Использование MooTools 1.2 для Drag, Drop, Sort, Save с примером

Мои клиенты любят контролировать содержимое своего сайта, поэтому я создаю функционал для этого. Для лучшего удобства администрирования я использую функции Drag and Drop Menu, с возможностью записи в базу данных. Данная функция помогает сортировать список. Это очень удобно и экономит время, так как не требуется перегружать полностью страницу.

Вот один из способов реализовать данную функцию с помощью JavaScript библиотеки MooTools.

The MySQL Table

id title sort_order
1 Article 1 1
2 Article 2 2
3 Article 3 3
4 Article 4 4
5 Article 5 5
6 Article 6 6

 

The PHP / XHTML

<?php
<div id="message-box"><?php echo $message; ?> Waiting for sortation submission...</div>

<form id="dd-form" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<p><input type="checkbox" value="1" name="auto_submit" id="auto_submit" <?php if($_POST['auto_submit']) { echo 'checked="checked"'; } ?> /> <label for="auto_submit">Automatically submit on drop event</label></p>

<ul id="sortable-list">
  <?php 
    $sort_order = array();
    while($item = mysql_fetch_assoc($result))
    {
      echo '<li class="sortme" alt="',$item['id'],'">',$item['title'],'</li>';
      $sort_order[] = $item['sort_order'];
    }
  ?>
</ul>
<br />
<input type="hidden" name="sort_order" id="sort_order" value="<?php echo implode($sort_order,'|'); ?>" />
<input type="submit" name="do_submit" value="Submit Sortation" class="button" />
</form>
<?php } else { ?>

  <p>Sorry!  There are no items in the system.</p>

<?php } ?>

 

The CSS

#sortable-list {
padding:0;
}
li.sortme {
padding:4px 8px;
color:#000;
cursor:move;
list-style:none;
width:500px;
background:#ddd;
margin:10px 0;
border:1px solid #999;
}

#message-box {
background:#fffea1;
border:2px solid #fc0;
padding:4px 8px;
margin:0 0 14px 0;
width:500px;
}

 

The MooTools JavaScript

/* when the DOM is ready */
/* create sortables */
  var sb = new Sortables('sortable-list', {
    /* set options */
    clone:true,
    revert: true,
    /* initialization stuff here */
    initialize: function() { 

    },
    /* once an item is selected */
    onStart: function(el) { 
      el.setStyle('background','#add8e6');
    },
    /* when a drag is complete */
    onComplete: function(el) {
      el.setStyle('background','#ddd');
      //build a string of the order
      var sort_order = '';
      $$('#sortable-list li').each(function(li) { sort_order = sort_order +  li.get('alt')  + '|'; });
      $('sort_order').value = sort_order;

      //autosubmit if the checkbox says to
      if($('auto_submit').checked) {
        //do an ajax request
        var req = new Request({
          url:'<!--?php echo $_SERVER['PHP_SELF']; ?-->',
          method:'post',
          autoCancel:true,
          data:'sort_order=' + sort_order + '&ajax=' + $('auto_submit').checked + '&do_submit=1&byajax=1',
          onRequest: function() {
            $('message-box').set('text','Updating the sort order in the database.');
          },
          onSuccess: function() {
            $('message-box').set('text','Database has been updated.');
          }
        }).send();
      }
    }
  });
});

 

The «Header» PHP / MySQL

/* on form submission */
if(isset($_POST['do_submit'])) 
{
  /* split the value of the sortation */
  $ids = explode('|',$_POST['sort_order']);

  /* run the update query for each id */
  foreach($ids as $index=>$id)
  {
    if($id != '')
    {
      $query = 'UPDATE test_table SET sort_order = '.$index.' WHERE id = '.$id;
      $result = mysql_query($query,$connection) or die(mysql_error().': '.$query);
    }
  }

  /* now what? */
  if($_POST['byajax']) { die(); } else { $message = 'Sortation has been saved.'; }
}

Я считаю, что на сегодняшний день такой способ сортировки является самым быстрым, и современным.

Переведено из источника:
http://davidwalsh.name/mootools-drag-drop