Ankündigung

Einklappen
Keine Ankündigung bisher.

Fremdes PHP-Script seperat ausführen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fremdes PHP-Script seperat ausführen

    Hallo,

    ich möchte aus meinem PHP-Script heraus ein fremdes PHP-Script ausführen, ähnlich wie man auch über exec() beliebige Kommandozeilenprogramme ausführen kann.

    Das fremde PHP-Script soll komplett getrennt von meinem eigenen Script laufen, während mein Script darauf wartet bis das fremde Script beendet ist und dessen Rückgabe auswertet.

    Ein include kommt nicht in Frage, weil das fremde Script...:
    * ... Daten an den Browser senden könnte
    * ... Variablen des Ausgangs-Script verändern könnte
    * ... das gesamte Script per die() beenden könnte

    PHP-CLI

    Die erste Idee wäre also einfach fremd.php als CLI auszuführen und die Textausgabe auszuwerten:
    exec("php fremd.php 123", $ausgabe = array(), $return_val);

    fremd.php
    PHP-Code:
    <?php
    $x 
    = isset($argv[1]) ? (int) $argv[1] : 42;

    $result = array();
    $result["quadrat"] = $x*$x;
    $result["log10"] = log10($x);
    $result["time"] = time();

    echo 
    serialize($result);
    ?>
    Klappt auch soweit. Wie mach ich das aber auf Systemen, wo ich nicht weiß, wo sich die php-Binary befindet? Wenn man xampp unter Windows installiert, wird die php.exe beispielsweise nicht standardmäßig in die Umgebungsvariable %PATH% eingetragen. Ich muss also den vollen Pfad zur php-Binary kennen.

    Wie komme ich möglichst sicher an den korrekten Pfad?
    Wie stelle ich sicher, dass es sowohl unter gängigen Windows- als auch POSIX-Systemen läuft?

    pcntl_fork

    Bin zufällig auf [man]pcntl_fork()[/man] gestoßen.
    Eventuell könnte ich dann das fremde Script einfach im Kindprozess ausführen, während der Vaterprozess auf den Kindprozess wartet?

    Gibt es soetwas auch für Windows-Systeme?

    Andere Möglichkeiten?

    Gibt es noch andere Möglichkeiten fremde PHP-Scripte gtrennt vom eigenen Script auszuführen?


    Bin für jede Hilfe dankbar

  • #2
    include über http-Pfad.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Ich würde je nach Herkunft des Scriptes einen HTTP-Request mittels PHP aufrufen oder einen Webservice mit PHP aufsetzen! Letztlich ist beides fast das selbe, aber die Bearbeitung fällt beim zweiten Punkt wesentlich einfacher...

      PS: Da schreibt einer mal eine ausführliche Beschreibung - die so oft gefordert wird - und dann wird die nicht einmal gelesen... oO

      Kommentar

      Lädt...
      X