[#] Zdalne zapytania HTTP z użyciem cURL

( Ostatnio zmieniony śr., 11/06/2008 - 10:25 )
 

Wymagane php5-curl

sudo apt-get install php5-curl

Przykład 1: Prosta metoda autentykacji – BASIC

<?php
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  curl_setopt(CURLOPT_USERPWD, '[username]:[password]')

  $data = curl_exec();
  curl_close($ch);
?>

Przykład 2: Dowolna metoda autentykacji.

<?php
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  curl_setopt(CURLOPT_USERPWD, '[username]:[password]')

  $data = curl_exec();
  curl_close($ch);
?>

Przykład logowania z użyciem metody POST

<?php
  // ***********************************************
  // ********* Login into drupal
  // ***********************************************

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL,"http://my.server.com/?q=user");
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_USERAGENT, 'PHP script');
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, "name=USER&pass=PASS&form_id=user_login");

  ob_start();      // prevent any output
  curl_exec ($ch); // execute the curl command
  ob_end_clean();  // stop preventing output
  curl_close ($ch);
  unset($ch);
?>

Użyto metody POST do przesłania zmiennych „name“, „pass“, „form_id“

Źródło:
http://drupal.org/node/80548
http://drupal.org/node/89710

Wypełnianie formularza

<?php
  $phoneNumber = '4045551111';
  $message = 'Ta wiadomość została wygenerowana przez curl i php';
  $curlPost = 'pNUMBER='  . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send';
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

  $data = curl_exec();
  curl_close($ch);
?>

Użycie cURL z Proxy

<?php
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
  curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
  curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');

  $data = curl_exec();
  curl_close($ch);
?>

Inne zastosowania – np.: słownik

index.html

<html>
 <body>
  <form action="curl2.php" method="POST">
    Wpisz szukane slowo: <input type="text" name="word">
    <input type="submit">
  </form>
 </body>
</html>

curl2.php

<?php
  $word = addslashes($_POST['word']);

  if ($word != '') {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, "dict://dict.org/d:($word)");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $definition = curl_exec($ch);

    curl_close($ch);
    print "Definicje $x: $definition";
  }
?>

Prosty sposób na zapisanie strony do pliku

<?php

  $ch = curl_init("http://www.example.com/");
  $fp = fopen("strona_www.txt", "w");

  curl_setopt($ch, CURLOPT_FILE, $fp);
  curl_setopt($ch, CURLOPT_HEADER, 0);

  curl_exec($ch);
  curl_close($ch);
  fclose($fp);
?>

Przydatne linki:

http://www.php.net/…ref.curl.php

Twoja ocena: Brak Średnio: 5 (1 vote)

Dodaj nową odpowiedź

Informacja:

Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich, mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną. Upewnij się, że twoja wypowiedź nie godzi w niczyje mienie.

  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <strong> <blockquote> <code>
  • Znaki końca linii i akapitu dodawane są automatycznie.

Więcej informacji na temat formatowania

Łapirobot
Proszę odpowiedzieć
p
w
4
G
X
K
M
i
E
H
Enter the code without spaces and pay attention to upper/lower case.