Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Php Skript starten und Browserausgabe beenden?

Hallo,

Ich möchte auf einer Webseite folgendes ermöglichen:

1. Webseite aufrufen und Link anklicken. => Es kommt eine Seite mit einer Meldung wie z.B. "Skript wurde erfolgreich gestartet".
2. Gleichzeitig startet das Skript, welches die HTML-Ausgabe erzeugt hat, ein PHP-Skript welches ein Import startet.

Hintergrund: Das Skript welches den Import startet läuft unter Umständen einige Stunden. Würde ich das Skript starten und die Meldung im Browser ausgeben, so würde sich der blaue Progress-Balken des Browsers sehr langsam aufbauen und irgendwann mal die Seite "Seite kann nicht angezeigt werden" angezeigt werden. Der PHP-Prozess auf dem Server läuft aber immer noch, wäre ja im Prinzip o.k., aber nicht sehr User freundlich.

=> Deshalb möchte sofort eine Browser-Ausgabe machen und im Hintergrund eine PHP-Skript anstossen. So würde ich erreichen das die Browserausgabe beendet ist und "versteckt" ein PHP-Skript angestossen wird.

=> Wie geht das? Skriptbeispiel?

=> Gibt es die Möglichkeit dem User im Browser anzuzeigen (wenn er nach ein paar Stunden wieder reinschaut) ob der obengenannte PHP-Prozess (Thread) noch läuft? Also so:
"Skript 1 läuft"
"Skript 2 beendet"
.....


Danke

Hier gehts zum Orginal Eintrag "Php Skript starten und Browserausgabe beenden?" im Forum

Antworten

das geht nicht, da php die seite erst an den browser schickt, wenn das skript beendet ist
aber vielleicht kannst du das skript zerlegen und automatisch in teilen ausführen lassen
z.b. wenn du ne riesige for-schleife hast
Code:                   In Zwischenablage kopieren (nur IE)
1">

nur ne idee probiers
flooo


2.

Hallo,

Es muss doch sicherlich möglich sein von einem Skript mit einem Befehl ein weiteres Skript zu starten.
Also, ich rufe "prozess_start.php" auf, dieses soll "Test" im Browser ausgeben und damit die Browserausgabe beenden. Dann soll das Skript "prozess.php" gestartet werden. Dieses enthält einfach eine unendliche Schleife, welches die Werte von $i in eine Protokoll-Datei schreibt.

==>Bei mir wird lediglich "Test" im Browser ausgegeben, was ja so korrekt ist. Allerdings wird mein Skript "process.php" nicht gestartet. Was mache ich falsch?

prozess_start.php
------------------------
Code:                   In Zwischenablage kopieren (nur IE)
2">

prozess.php:
------------------
Code:                   In Zwischenablage kopieren (nur IE)
3">




3.

PHP ist eine Interpretersprache und benötigt deshalb beim Start über die Kommandozeile den Interpreter als Programm, nicht das Skript. Siehe Doku...


4.

Zitat:
oimel postete
PHP ist eine Interpretersprache und benötigt deshalb beim Start über die Kommandozeile den Interpreter als Programm, nicht das Skript. Siehe Doku...
Hmm, was heisst das? Ich muss doch nur das was ich mit exec() ändern? Also Skript XY mit Interpreter starten. Wie mache ich das? (Oder verstehe ich etwas vollkommen falsch?)

Danke.


5.

Ich schreib extra dazu "siehe Doku", unglaublicherweise steht das gleich in einem der ersten Kapitel ausführlich beschrieben drin.


Hier gehts zum Orginal Eintrag "Php Skript starten und Browserausgabe beenden?" im Forum
 
phpforum.de | Impressum