Wenn man Parameter als Variablen an eine andere Seite übergeben möchte, geht das zum Beispiel als GET Parameter: Ruft man eine Webseite auf, lassen sich die Parameter direkt über die URL-Adresse übergeben:
seite.php?wert1=eins&wert2=zwei&wert3=drei
Auf der Seite “seite.php” stehen die Parameter dann als einzelne Variablen bereit, über die man direkt zugreifen kann:
$_GET['wert1']
$_GET['wert2']
$_GET['wert3']
Problem mit Parameter und curl
Ruft man eine Seite aber mit curl auf und versucht, mehrere Parameter über die URL zu übergeben, funktioniert das aber nicht: Hier wird nur die erste Variable übergeben. Möchte man also mehr als einen Wert übergeben, gibt es zwei Möglichkeiten: Entweder man vereint alle Werte in einer Variable und trennt sie später wieder auf, oder man sendet die Variablen mit dem “-d” Parameter.
Werte mit curl -d senden
Die einfachste Version ist das Umschreiben der curl Anweisung: Hier muss jetzt dringend die Option “-G” gesetzt werden, damit die Werte auch per “GET” an das PHP Skript gesendet werden. Zusätzlich wird jede Variable, die so mit curl übergeben werden soll, mit einem vorangestellten “-d” markiert:
curl -G seite.php -d wert1=eins -d wert2=zwei -d wert3=drei
In PHP stehen die einzelnen Werte jetzt weiterhin als Variablen $_GET[‘wert1’], $_GET[‘wert2’] und $_GET[‘wert3’] zur Verfügung.
Alle Werte in einer Variable speichern und mit PHP trennen
curl seite.php?wert=eins/zwei/drei
Auf der Seite “seite.php” steht dann die Variable $_GET[‘wert’] zur Verfügung, die den Inhalt “eins/zwei/drei” enthält. Um an die einzelnen Werte zu gelangen, muss man die die Werte nun nur noch aufsplitten:
<?php
$wert = $_GET['wert'];
$wert = explode("/",$wert);
?>
Jetzt kann man mit $wert[0], $wert[1] und $wert[2] auf die einzelnen Inhalte der Variablen zugreifen.