php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-05-2007, 23:19
gerdtt
 Newbie
Links : Onlinestatus : gerdtt ist offline
Registriert seit: May 2007
Beiträge: 9
gerdtt ist zur Zeit noch ein unbeschriebenes Blatt
Standard fsockopen problem (seite hängt fest)

Hallo

Kurze Einleitung:

Ich nutze:

$fp = @fsockopen($url, $port, $errno, $errstr, 10);

um übers Internet auf eine Application auf meinem PC zu connecten, auf die man per telnet zugreifen kann.

Nun funktioniert das Befehle senden perfekt z.B. fwrite($fp, "/activatelog\r\n"); wird auch von der Application ausgeführt.

fgets($fp); funktioniert ebfenfalls wunderbar.

Das Windows Programm schreibt "log zeilen" die man per telnet abrufen kann, aber nur wenn man connected ist.

Ich möchte nun alles was das programm schreibt, per php abrufen und auf meinem Server mit "echo" ausgeben.

Die "log" anzeige sollte ca. alle 5 sekunden aktualisiert werden.

Nun aber zu dem Problem:
Wenn ich folgenden code nutze:

fwrite($fp, "/log all\r\n");
while (!feof($fp) && $str = fgets($fp)) {
echo $str;
}
}
Wird die Seite nicht zuende geladen, weil es theoretisch keinen FEOF gibt...


benutze ich im while zusätzlich

if (false !== strpos($str, ' ')) {
break;}

Bricht er ab wenn im moment nichts mehr gesendet wird, ist auch okay so.

Nun das große Problem ist, das nur der Bruchteil ausgegeben wird, in dem das Script zum Programm connected ist.
In den 5 Sekunden bis zum "refresh" loggt das windows programm aber weitere sachen, die aber dann nicht in der ausgabe erscheinen, da das php script zu der Zeit nicht connected ist.

Nun ist meine Frage ob es möglich ist in Php die "$fp = @fsockopen" connection aufrecht zuerhalten und parallel (immer wenn eine neue zeile auftaucht) mit fgets die sachen z.b. in ein textfeld zu loggen?
Alle meine Versuche haben dazu geführt, das die Seite dann nicht geladen wurde weil er in der "while" schleife festgesteckt ist.
Mit Zitat antworten
  #2 (permalink)  
Alt 09-05-2007, 01:29
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du könntest im Hintergrund ein php-Skript immer laufen lassen, was alle X Sekunden vom Server neu einliest und in eine Datei schreibt (sleep hilft); das frontend liest die Datei aus und leert sie wieder

fopen/fclose nicht vergessen, damit die Skripte abwechselnd auf die Datei zugreifen können
Mit Zitat antworten
  #3 (permalink)  
Alt 11-05-2007, 16:29
gerdtt
 Newbie
Links : Onlinestatus : gerdtt ist offline
Registriert seit: May 2007
Beiträge: 9
gerdtt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja verstehe in etwas was du meinst, nur wie soll das im "hintergrund" laufen?
Mit Zitat antworten
  #4 (permalink)  
Alt 11-05-2007, 16:41
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zeitlimit abstellen und einmal ausführen. im skript gibt es dann ein while(true) { ... } konstrukt, das die operation so und so ausführt und für 60 sekunden schlafen geht.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-05-2007, 16:48
gerdtt
 Newbie
Links : Onlinestatus : gerdtt ist offline
Registriert seit: May 2007
Beiträge: 9
gerdtt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

okay klar,

aber das ist ja das was ich meinte, dass man dann immer 2 seiten offen haben muss.

Eigentlich nicht sehr nutzer freundlich ;O
Mit Zitat antworten
  #6 (permalink)  
Alt 11-05-2007, 16:52
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein, muss man nicht. dein "dämon"-skript sollte serverseitig über eine shell angestoßen werden.
Mit Zitat antworten
  #7 (permalink)  
Alt 11-05-2007, 19:55
gerdtt
 Newbie
Links : Onlinestatus : gerdtt ist offline
Registriert seit: May 2007
Beiträge: 9
gerdtt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

gut klar,
wenn ich nun aber mehrere user für das script habe, und die kein shell zugriff haben wird mir wohl nichts anderes übrig bleiben als das mit den 2 seiten in erwägung zu ziehen.


oder kann man mit einem befehl das script serverseitig starten (im php code)
Mit Zitat antworten
  #8 (permalink)  
Alt 11-05-2007, 22:49
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

system() etc.
Mit Zitat antworten
  #9 (permalink)  
Alt 12-05-2007, 13:25
gerdtt
 Newbie
Links : Onlinestatus : gerdtt ist offline
Registriert seit: May 2007
Beiträge: 9
gerdtt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dankesehr

Ich hab das nun mal getestet indem ich 2 Seiten aufgemacht habe,
eine die alles in eine .txt datei loggt und die andere liest beim "refresh" den inhalt aus der .txt datei.

Aber sobald ich die Seite mit der Endlos schleife geöffnet habe (habe die php timeouts alle hochgeschraubt) läd die andere seite nicht mehr nach einem refresh.

Kann der Server immer nur ein php script gleichzeitig ausführen... oder an was liegt das?
bzw. wie kann ich das ändern?

MfG und DAnke
Mit Zitat antworten
  #10 (permalink)  
Alt 12-05-2007, 14:29
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du hast irgendwas falsch gemacht.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:14 Uhr.