Ich habe ein Skript mit dem Namen MakeAvatar.php
. Und wenn ich ein Argument, um es (als GET-Methode) übergeben, macht es zu einem Bild (Avatar) auf der Grundlage dieses Argument:Wie kann ich ein Skript außerhalb des Stammverzeichnisses durch ein anderes ausführen?
http://example.com/MakeAvatar.php?id=12345
// Output: 1234.jpg
Und ich kann einfach das Bild wie folgt speichern:
file_put_contents("../img/avatar/".$id.".jpg", file_get_contents("http://localhost/MakeAvatar.php?id=$id"));
Nun, da Skript (MakeAvatar.php
) ist aus Stammverzeichnis:
\out
\MakeAvatar.php
\root
\include
\register.php
\img
\avatar
Und ich kannnicht öffnen 0 als HTTP-Anfrage in register.php
. Ich kann nur auf diesen Pfad zugreifen:
$_GET['id'] = $id; // passing
file_put_contents("../img/avatar/".$id.".jpg", file_get_contents("../out/MakeAvatar.php"));
Aber Code oben funktioniert nicht. Weil file_get_contents()
nur dieses Skript öffnet, führen Sie es nicht aus. Dann wird der Ausgang ein unklares Bild sein:
Auch wenn ich dieses Bild durch einen Editor zu öffnen, es enthält den Inhalt MakeAvatar.php
(alle seine Codes). So scheint es das Problem ist vorbei.
Nun, wie kann ich diese Datei ausführen?
. . . file_get_contents("how can I execute MakeAvatar.php in here ?")
Hinweis: ich den Inhalt MakeAvatar.php
nicht ändern können. Auch ich kann sein Verzeichnis nicht ändern (ich meine, ich kann es nicht in Wurzel setzen).
Sind Sie sicher, dass Sie nicht nur 'include' /' require' brauchen? –
@JonStirling Schau, ich kann '()' es, aber warum? Ich muss es ausführen. Denn wenn ich es ausführe (und ein Argument an es übergebe), wird die Ausgabe ein Bild und ich speichere das Bild. Aber wenn ich nur "()" einschließe, gibt es kein Bild. – stack
Anstatt eine Datei selbst zu einem Skript zu machen. Machen Sie eine Funktion in einer Datei außerhalb des Stammverzeichnisses, fügen Sie die Datei hinzu und rufen Sie die Funktion auf. Alternativ zeigen Sie uns das Skript und wir können sehen, wie Sie Ihre Struktur kompensieren können. – Matt