Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 9 Networking
  gp 9.1 Net_IPv4
  gp 9.2 Net_IPv6
  gp 9.3 Net_FTP
  gp 9.4 Net_POP3
  gp 9.5 Net_SMTP
  gp 9.6 Net_CheckIP
  gp 9.7 Net_IDNA
  gp 9.8 Net_Curl
  gp 9.9 Net_Socket
  gp 9.10 Net_UserAgent_Detect


Rheinwerk Computing

9.8 Net_Curl  toptop


Besprochene Version: 1.0.1beta Lizenz: PHP-Lizenz 2.02
Klassendatei(en): Net/Curl.php

Net_Curl stellt ein objektorientiertes Interface für die CURL-Funktionen von PHP dar.

CURL ist die Abkürzung für »Client URL« und basiert auf der Bibliothek libcurl, die es ermöglicht, auf einfache Art und Weise Daten von oder zu einem anderen Server zu transferieren. Dabei unterstützt CURL nicht nur einen direkten Abruf, sondern auch die Nutzung von Proxies oder die Authentifizierung mittels Benutzernamen und Passwort.

Möchten Sie sehr umfangreiche CURL-Operationen durchführen, die sich nicht im Abruf von Daten und im Upload von einfachen Formulardaten erschöpfen, sollten Sie auf die CURL-Funktionen von PHP zurückgreifen, da der Funktionsumfang von Net_Curl noch stark eingeschränkt ist.

Zwar kennt das Paket insgesamt nur vier Methoden, aber dafür gibt es eine recht stattliche Anzahl von Eigenschaften, mit denen der Ablauf des Datentransfers bestimmt werden kann.

Mit den folgenden Zeilen würde die URL http://www.heise.de/newsticker/ abgerufen und ausgegeben:

require_once('Net/Curl.php'); 
 
// Objekt ableiten 
$curl = new Net_Curl('http://www.heise.de/newsticker/'); 
// CURL-Abfrage starten 
$res=$curl->execute(); 
// Verbindung beenden 
$curl->close(); 
 
// Ist ein Fehler aufgetreten? 
if (true===PEAR::isError($res)) 
{ 
   die ($res->getMessage()); 
} 
// Eingelesene Daten ausgeben 
echo $res;

Listing 9.11 Abrufen einer URL mit Net_Curl

Die Nutzung ist auch hier wieder denkbar einfach gehalten. Der Konstruktor bekommt direkt die URL der Seite übergeben, die abgerufen werden soll. Diese können Sie alternativ auch über die Eigenschaft url festlegen. Die Methode execute() führt die eigentliche Abfrage aus und gibt die ermittelten Daten als String zurück. Net_Curl unterstützt auch eine direkte Ausgabe der Daten; ich würde Ihnen aber empfehlen, diese erst in einer Variablen abzulegen. Damit haben Sie eine bessere Möglichkeit, auf das Auftreten eines Fehlers zu prüfen.

Die Methode close() beendet die Verbindung schließlich wieder.

Zusätzlich ist noch eine weitere Methode deklariert: verbose_all(). Sie ist zur Fehlersuche gedacht und schaltet die Ausgabe von zusätzlichen Informationen ein.

Alle weiteren Möglichkeiten der CURL-Funktionen werden mithilfe von Eigenschaften gesteuert, was dazu führt, dass die Liste der Eigenschaften sehr lang ist. In Tabelle 9.3 finden Sie einige der gängigen Eigenschaften. Hierbei handelt es sich um Eigenschaften, die zum jetzigen Zeitpunkt funktionieren. Weitere Funktionalitäten sind noch vorgesehen, wobei diese leider noch zu Fehlern führen, so dass ich sie hier nicht erläutert habe. Wenn Sie Net_Curl einsetzen möchten, prüfen Sie bitte das Change-Log daraufhin, welche Eigenschaften inzwischen funktionieren.


Tabelle 9.3 Eigenschaften zur Steuerung von Net_Curl
Eigenschaften Erläuterung
userAgent String, mit dem sich das Script gegenüber dem Server als bestimmter Browser zu erkennen gibt
username Benutzername, um sich per http bei einem Server zu authentifizieren
password Passwort für eine http-Authentifikation bei einem Server
proxy Name oder IP-Adresse eines Proxy-Servers, der genutzt werden soll
proxyUser Username zur Anmeldung bei einem Proxy
proxyPassword Passwort zur Authentifikation bei einem Proxy
fields Array, das aus Feldnamen und Werten besteht und als Formular übermittelt wird. Wenn Sie keine andere Methode definieren, wird mit POST übertragen.
type Methode, mit der ein Formular übertragen werden soll: 'get' oder 'post'

Wenn Sie mithilfe von Net_Curl Daten an ein PHP-Script übergeben möchten, das mit einem Passwort gesichert ist, könnte das mit einem Script wie diesem gelöst werden:

require_once('Net/Curl.php'); 
 
// Objekt ableiten 
$curl = new Net_Curl('http://www.example.com/geheim/dat.php'); 
// Passwort und Benutzername fuer die Authentifikation 
// beim Server 
$curl->username='cmoehrke'; 
$curl->password='geheim'; 
 
// Uebertragungsmethode 
$curl->type='post'; 
// Daten, die uebertragen werden sollen 
$daten = array ( 
         'vorname' => 'Carsten', 
         'nachname' => 'Möhrke'); 
$curl->fields=$daten; 
 
// CURL-Abfrage starten 
$res=$curl->execute();_$ret_// Verbindung beenden 
$curl->close(); 
 
// Fehler aufgetreten? 
if (true===PEAR::isError($res)) 
{ 
   die ($res->getMessage()); 
} 
// Eingelesene Daten ausgeben 
echo $res;
 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de