Ich muss eine PHP-Datei in eine Variable laden. Mögeninclude();
Ich habe eine einfache HTML-Datei wie folgt geladen:
$Vdata = file_get_contents("textfile.txt");
Aber jetzt muss ich eine PHP-Datei laden.
Ich nehme an, Sie möchten den von PHP generierten Inhalt erhalten , wenn ja:
$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');
Andernfalls entspricht der Quellcode der PHP-Datei einer TXT-Datei:
$Vdata = file_get_contents('path/to/YOUR/FILE.php');
eval()
oder wenn Sie mit komplizierterem Code arbeiten: github.com/nikic/PHP-Parser .$Vdata = file_get_contents(get_template_directory_uri() . '/path/to/file/in/theme.text');
ob_get_clean ()
quelle
$myvar = ob_get_clean();
(siehe ob_get_clean Dokumentation )Wenn Sie http: // verwenden , wie von eyze vorgeschlagen, können Sie nur die Ausgabe des PHP-Skripts lesen. Sie können das PHP-Skript selbst nur lesen, wenn es sich auf demselben Server befindet wie Ihr laufendes Skript. Sie könnten dann so etwas verwenden
quelle
Wenn Sie die Datei laden möchten, ohne sie über den Webserver auszuführen, sollte Folgendes funktionieren.
Dadurch wird der Dateiinhalt geladen und ausgewertet. Die PHP-Datei muss vollständig mit
<?php
und?>
Tags erstellt werden, damiteval
sie ausgewertet werden kann.quelle
Theoretisch könnten Sie einfach fopen und dann stream_get_contents verwenden.
Das sollte die gesamte Datei für Sie in $ string einlesen und nicht auswerten. Obwohl ich überrascht bin, dass file_get_contents nicht funktioniert hat, als Sie den lokalen Pfad angegeben haben ...
quelle
Alternativ können Sie die Ausgabepufferung starten, ein Include / Require ausführen und dann die Pufferung beenden. Mit ob_get_contents () können Sie einfach das Material, das von dieser anderen PHP-Datei ausgegeben wurde, in eine Variable übertragen.
quelle
Wenn Ihre Datei eine return-Anweisung wie folgt hat:
Sie können dies zu einer Variablen wie dieser bringen:
quelle
file_get_contents () funktioniert nicht, wenn auf Ihrem Server allow_url_fopen deaktiviert ist . Bei den meisten gemeinsam genutzten Webhosts ist diese aus Sicherheitsgründen standardmäßig deaktiviert. In PHP6 ist außerdem allow_url_fopen Option nicht mehr vorhanden und alle Funktionen verhalten sich so, als ob sie dauerhaft deaktiviert sind. Dies ist also eine sehr schlechte Methode.
Die beste Option, wenn Sie über http auf die Datei zugreifen, ist cURL
quelle