Spiky ist eine auf PHP5 aufgesetzte HTTP Klasse. Sie ermöglicht den Datentransfer mit fremden Webservern über HTTP 1.1.
Funktionen im Überblick
- Cookies lesen, setzen und verfolgen
- SSL geschützte Verbindungen
- HTTP-Methoden: GET, POST, HEAD, TRACE, OPTIONS
- Unterstützung von HTTP-Proxys
- Lesen von GZIP komprimierten Daten
- Konvertieren von Chunked-Datenströmen
- HTTP-Datei Uploads
- Ermöglicht das Modifizieren von Referer, UserAgent, Sprache, Zeichensatz, etc.
- Unterstützt HTTP-Authentifizierung (http_auth)
Download
Beispiele
Get-Anfrage an Webserver
1
2
3
4
5
6
7
8
9
10
11
| // Spiky inkludieren:
Include 'class_spiky.php';
// Spiky initialisieren:
$spiky = New Spiky;
// Get auslösen:
$result = $spiky->get ('http://www.google.de/');
// Daten verarbeiten
Echo HtmlSpecialChars ($result); |
get() ist eine Hilfsfunktion um ohne viel Code den Inhalt eines fremden Dokuments zu holen. Analog würde das mit Query() dann so aussehen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Spiky inkludieren:
Include 'class_spiky.php';
// Spiky initialisieren:
$spiky = New Spiky;
// URL setzen:
$spiky->setUrl ('http://www.google.de/');
// Query auslösen:
$spiky->Query();
// Daten verarbeiten
Echo HtmlSpecialChars ($spiky->Body()); |
Spiky kann HTTP-Anfragen auch über verschiedene Server umleiten. Benutzen von Proxy-Servern:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| // Spiky inkludieren:
Include 'class_spiky.php';
// Spiky initialisieren:
$spiky = New Spiky;
// URL setzen:
$spiky->setUrl ('http://www.google.de/');
// Proxy setzen:
$spiky->setProxy ('114.127.246.36', '8080');
// Query auslösen:
$spiky->Query();
// Daten verarbeiten
Echo HtmlSpecialChars ($spiky->Body()); |
Behandlung von Cookies
Spiky liest beim Auswerten von HTTP-Paketen alle Cookies mit aus, speichert diese aber nicht für den nächsten Request automatisch. Um Cookies in der nächsten Anfrage wieder zu verwenden, gibt es die Funktion applyCookies().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| // Spiky inkludieren:
Include 'class_spiky.php';
// Spiky initialisieren:
$spiky = New Spiky;
// URL setzen:
$spiky->setUrl ('http://www.google.de/');
// Query auslösen:
$spiky->Query();
// Cookies lesen:
Print_R ($spiky->getCookies());
// Cookies speichern:
$spiky->applyCookies();
// Cookies setzen:
$spiky->addCookie ('name_des_cookies', 'ein beliebiger Wert');
// Nächste Anfrage:
// $spiky->Query(); //... |
Sichere SSL-Anfragen
Um Daten aus Online-Shops oder von Bankseiten zu erfragen ist meist SSL notwendig. Spiky unterstützt SSL inklusive aller Features.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Spiky inkludieren:
Include 'class_spiky.php';
// Spiky initialisieren:
$spiky = New Spiky;
// URL setzen:
$spiky->setUrl ('https://epetitionen.bundestag.de/');
// Query auslösen:
$spiky->Query();
// Daten auswerten:
Echo HtmlSpecialChars ($spiky->Body()); |
Funktionsreferenz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| Class Spiky {
Function setURL ($url){
// Setzt die zu verwendende URL.
}
Function setProxy ($ip, $port = 80){
// Setzt den Proxy-Server
// Standardport für den Proxy ist 80
}
Function setMethod ($method){
// Setzt die Methode die als HTTP-Anfrage verwendet wird.
// Standard: GET / POST
}
Function setUserAgent ($userAgent){
// Setzt das UserAgend-Feld im Header.
}
Function setLanguage ($lang){
// Setzt das Language-Feld im Header.
}
Function setCharset ($charset){
// Setzt das Charset-Feld im Header.
}
Function setReferer ($url){
// Setzt den Referer der Anfrage.
}
Function setAuth ($username, $password){
// Setzt die Zugangsdaten für die HTTP Anfrage.
}
Function addCookie ($name, $value){
// Fügt dem Header einen Cookie hinzu.
}
Function addGetVar ($name, $value){
// Fügt der Anfrage eine GET-Variable hinzu.
}
Function addPostVar ($name, $value){
// Fügt der Anfrage eine POST-Variable hinzu.
}
Function addFile ($name, $filePath, $fileName = Null){
/* Hängt eine Datei an die Anfrage an.
$name : Name des Feldes (eq: Name des Inputfeldes in HTML-Form)
$filePath : Path zur Datei
$fileName : Der Dateiname der für diese Datei an den Server gesendet wird.
Standard: Originaldateiname
*/
}
Function addStream ($name, &$stream, $fileName){
/* Hängt eine Datei an die Anfrage an.
$name : Name des Feldes (eq: Name des Inputfeldes in HTML-Form)
$stream : Binärcode der zu sendenden Datei als Zeiger auf einen String.
$fileName : Der Dateiname der für diese Datei an den Server gesendet wird.
*/
}
Function Head(){
// Gibt den Kopf der letzten Serverantwort als String zurück.
}
Function Body(){
// Gibt den Rumpf der letzten Serverantwort als String zurück.
}
Function getHeader ($key){
// Gibt den Wert eines Feldes ($key) der letzten Serverantwort zurück,
// oder, falls nicht vorhanden, (bool) FALSE.
}
Function getCookies (){
// Gibt alle Cookies der letzten Serverantwort als assoziatives Array zurück.
}
Function applyCookies (){
// Übernimmt alle Cookie der letzten Serverantwort für die nächste Clientenanfrage.
}
Function Query (){
/* Führt eine HTTP-Anfrage durch.
Ist die Anfrage erfolgreich, werden alle Post-, Get- und File-Variablen gelöscht!!!
Anderenfalls gibt die Funktion (bool) FALSE zurück.
*/
}
Function Get ($url){
/* Die einfachste Möglichkeit eine Spiky-HTTP-Anfrage zu stellen.
Erwartet: eine URL
Gibt zurück: (String) Anwort des Servers ohne HTTP-Header
*/
}
} |
Hinterlasse eine Antwort