veröffentlicht am: 14.05.2020 zuletzt aktualisiert am: 06.02.2023
Oft müssen wir Daten aus anderen Dateien oder anderen Webseiten verarbeiten.Mit file_get_contents haben wir in PHP eine recht vielseitige Option, um beides zu tun.
Die Funktion file_get_contents akzeptiert 5 Parameter, 4 davon sind optional. Der Rückgabewert ist der Dateiinhalt als String.
file_get_contents($dateiname, $include_path, $kontext, $versatz, $laenge) $dateiname (erforderlich) Name der auszulesenden Datei $include_path (optional) Angabe, ob in include_path auch gesucht werden soll $kontext (optional) Kontext-Ressource von stream_context_create() $versatz (optional) Die Position, an der das Lesen im Originalstream beginnt Negative Offsets zählen vom Ende des Streams $laenge (optional) Maximale Länge der zu lesenden Daten Standardmäßig wird bis zum Ende der Datei gelesen.
Im folgenden Beispiel wird die Datei helloworld.txt ausgelesen und danach ausgegeben.
echo file_get_contents("helloworld.txt"); // hello world
hello world
Der zweite Parameter gibt an, ob der include_path genutzt werden soll. Diesen kannst du entweder über die Einstellungen in der php.ini-Datei ändern (siehe Dokumentation: https://www.php.net/manual/de/ini.core.php#ini.include-path) oder mit Funktionen wie set_include_path setzen.
Für das folgende Beispiel nutzen wir den Ordner include_path_test, um die Datei ipt.txt zu speichern. Diese wird dann von file_get_contents ausgegeben.
set_include_path('include_path_test'); echo file_get_contents("ipt.txt", TRUE); // include_path test
include_path test
Mit file_get_contents kannst du auch Adressen im Web angeben.Das folgende Beispiel sendet eine Anfrage an api.ipify.org, welche die externe IP-Adresse des Computers ausgeben sollte, auf dem das Skript läuft.
echo file_get_contents("https://api.ipify.org/");
Wenn du vom dritten Parameter, $kontext, gebrauch machst, kannst du zusätzliche Optionen angeben. Das folgende Beispiel führt einen POST-Request zu quotes.toscrape.com/login aus und gibt das Ergebnis zurück.In diesem Request werden Nutzerdaten übermittelt, um die Ansicht für eingeloggte Nutzer zu erhalten.
$nutzerdaten = ['username' => 'asdf', 'password' => 'wasd']; $nutzerdaten = http_build_query($nutzerdaten); $optionen = [ 'http' => [ 'method' => 'POST', 'header'=> "Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($nutzerdaten) . "\r\n", 'content' => $nutzerdaten ] ]; $kontext = stream_context_create($optionen); echo file_get_contents('http://quotes.toscrape.com/login', false, $kontext);
Die letzten beiden Parameter können genutzt werden, um nur bestimmte Teile des Strings zurückzugeben.Der vierte Parameter gibt den Versatz an. Dieser kann auch negativ sein, dann wird vom Ende des Strings gezählt.Mit dem fünften Parameter legst du die Länge des Rückgabestrings fest.
echo file_get_contents("helloworld.txt", FALSE, NULL, 6); // world echo file_get_contents("helloworld.txt", FALSE, NULL, -5); // world echo file_get_contents("helloworld.txt", FALSE, NULL, 6, 3); // wor echo file_get_contents("helloworld.txt", FALSE, NULL, 0, 5); // hello
Mit file_get_contents haben wir eine einfache Möglichkeit, eine Datei in einen String einzulesen. Mit den zusätzlichen Parametern können wir die Länge des Rückgabewerts beeinflussen. Zudem können wir festlegen, ob im include_path auch gesucht werden soll. Uns steht auch noch die Möglichkeit zur Verfügung, zusätzliche Daten mit unserer Abfrage über den Parameter $kontext zu übermitteln.
Hast du Fragen? Anmerkungen? Lob oder Kritik? Lass es mich in den Kommentaren wissen!
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig