Biblioteka
cURL to bardzo potężne narzędzie, które można wykorzystać do wykonania praktycznie każdego połaczenia. Aby dobrze ją zrozumieć trzeba wiedzieć co tak naprawdę się dzieje w momencie połączenia, jakie nagłówki są przesyłane, w jaki sposób i jakie dane w wyniku tego są zwracane. Stworzymy sobie zatem do tego na localhoście coś w rodzaju środowiska testowego składającego się z dwóch plików - jednego imitującego serwer, drugiego - imitującego klienta, który się z nim łączy. Do tego celu przygotowałem dwa pliki:
server.php, oraz
client.php. Oba pliki wrzucimy na localhosta. Omówię je za chwilę, na razie je stwórzmy.
Po stronie serwerowej - server.php
Pierwszy z plików będzie udawał stronę na serwerze.
Przeklejmy poniższy kod i zapiszmy plik jako
server.php:
[code]<?php
/**
* server.php - PHP Script for testing cURL connections.
* @version 1.1
* @author Marcin Szczygliński <szczyglis83@gmail.com>
* @link http://phpmajster.blogspot.com/search/label/cURL
* @package cURL Tester
*/
session_start();
function showVariables($aVars) {
if (count($aVars) == 0) {
echo " ---";
} else {
foreach ($aVars as $name => $value) {
if(!is_array($value))
{
echo "<p><u>".$name."</u> = ".str_replace(";", "; ", $value)."</p>";
} else {
var_dump($value);
}
}
}
}
// Get referer
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '[NULL]';
?><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>server.php</title><style>
body,td,th { font-family: Consolas, Arial, Verdana, Geneva, sans-serif; font-size: 11px; color: #000; background-color: #fff; }
h1 { background-color: #5f82ba; color: #fff; }
a { color:#5f82ba; text-decoration:none; }
p { margin: 5px; border-bottom:1px dotted #b7b9bb;}
u { text-decoration:none; font-weight:bold; background-color: #5f82ba; padding:1px; color: #fff;
padding-left:4px; padding-right:4px; border: 1px solid #fff; }
table { border-spacing:0px; border: 0px; padding:0; width:100%}
td { padding:10px; border: 1px solid #000;}
.t1 { vertical-align:top; font-weight: bold; font-size: 14px; background-color: #5f82ba; color: #fff;}
</style></head>
<body>
<h1>http://<?php echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ?></h1>
<b>Request from <?php echo $referer; ?>:</b>
<table><tr><td class='t1'>$_GET</td><td><?php showVariables($_GET); ?></td></tr>
<tr><td class='t1'>$_POST</td><td><?php showVariables($_POST); ?></td></tr>
<tr><td class='t1'>$_FILES</td><td><?php showVariables($_FILES); ?></td></tr>
<tr><td class='t1'>$_COOKIE</td><td><?php showVariables($_COOKIE); ?></td></tr>
<tr><td class='t1'>Headers</td><td><?php showVariables(getallheaders()); ?></td></tr>
<tr><td class='t1'>$_SESSION</td><td><?php showVariables($_SESSION); ?></td></tr>
<tr><td class='t1'>$_REQUEST</td><td><?php showVariables($_REQUEST); ?></td></tr>
<tr><td class='t1'>$_SERVER</td><td><?php showVariables($_SERVER); ?></td></tr>
<tr><td class='t1'>$_ENV</td><td><?php showVariables($_ENV); ?></td></tr>
</table>
</body></html>[/code]