php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.11.2005, 16:24  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard CLI, Command line Eingabe während der Laufzeit

Hi,

Hab mal ne Frage zu PHP und CLI:

Wenn ich ein Script laufen lasse, kann an einer Stelle eine Eingabe einfordern
PHP-Code:
echo "Gib was ein: ";
if(
$stdin fopen("php://stdin","r")) {
    
$input trim(fgets($stdin));
    
fclose($stdin);
}

echo 
"\n".'Du hast'.$input.'eingegeben'."\n"
Gibt es in PHP eine Möglichkeit, dass er (zB eine schleife) immer weiter macht aber auf die Eingabe des Benutzers reagieren kann.
Wenn ich also ENTER drücke er den Inhalt in die Variable $input schmeißt, weiter nix. Wenn der das nächste mal $input abprüft soll er dann einfach nur den neuen, eingegebenen Wert haben.

Ich weiß, PHP ist eigendlich als zustandsloses Dingens gedacht.
Mich interessiert aber, ob es die Möglichkeit gibt.

Gruß
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.11.2005, 20:14  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Pack das einfach in eine Schleife. Die Eingaben landen auf dem Stapel...
PHP-Code:
#!/usr/bin/php
<?php
$sPrompt 
": ";
if(!
$rStdin fopen("php://stdin","r")) die();

$bExit false;

do {
    echo 
$sPrompt;
    
$sInput trim(fgets($rStdin));
    if (
$sInput == 'exit'$bExit true;
    
doSomething($sInput);
    } while (!
$bExit);
fclose($rStdin);


function 
doSomething($sInput) {

    echo 
"Du hast '$sInput' eingegeben\n";
    
//sleep (3);
    
return;
}
?>
Basti ist offline  
Alt 29.11.2005, 10:27  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Hi,

dann steht das Script aber an der Eingabe.
Das soll es ja grad nicht.
Was sich suche ist quasi so ne Art ThreadMode für PHP.

Beispiel:
Ich parse gerade ein 240MB-File nach bestimmten kriterien in die DB.
Zwischendurch wird interesant, wie weit er ist, wieviel er in die DB geschrieben hat, was er ausgelassen hat, etc.
Nun möchte ich eine Taste (oder auch Taste+Enter) bestimmen, bei dem mir die Werte ausgegeben werden.
Unabhängig von dieser Eingabe soll er weiter das File in die DB parsen.

Ich bin mir einfach nicht ganz sicher ob das unmöglich ist.
Vieleicht gibt es unter PHP auch eine ProzessControling-Möglichkeit.

Gruß
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Alt 29.11.2005, 11:37  
Gast
 
Beiträge: n/a
Standard

Evtl. hilft Dir das weiter

http://pear.php.net/manual/de/packag...dispatcher.php
 
Alt 29.11.2005, 22:30  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Achso. In dem Fall hilft nur ein zweites Skript, dass entweder direkt
selbst auf Daten vom Hauptprozess zugreift (Dateien/Datenbank/Shared
Memory) oder diesem über diesen Weg Nachrichten zuschiebt, die sich
dieser dann eben dauernd anschauen muss und dann darauf reagieren
kann (und seinerseits dem Beobachter-Prozess ein Päckchen auswirft).

Für Ersteres könnte es z.B. sinnig sein, ein Status-Objekt in eine Session
zu werfen, auf das das Beobachter-Skript zugreift. Für letzteres könnten
Ticks[1] vielleicht hilfreich sein. Bleibt natürlich die Frage, wie weit du den
eigentlichen Prozess verlangsamen möchtest, blos um informiert zu sein,
wie lange er noch anhält.

[1] http://php.net/manual/en/control-str....declare.ticks

Basti

PS @Agundur:
Diese Umsetzung eines Dispatchers ändert ja nichts daran, dass PHP
keine Multithread-Eigenschaften besitzt.
Basti ist offline  
Alt 30.11.2005, 12:06  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

K, da sind 2 gute Ansätze.
Ich werde beiden nachgehen.
Ich denke, das trifft es, wenn nicht meld ich mich nochmal.

Danke!

Gruß
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Alt 30.11.2005, 14:10  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Oh, das mt der Session geht wohl nicht. Anscheinend wird diese zwischen session_start() und dem
Ende des Skriptes für andere Prozesse gelocked. Da müsstest du dir wohl einen eigenen Session
Handler schreiben.

Basti
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei richtiger Eingabe Daten an nächste Seite versenden xx_heidi_xx PHP Tipps 2008 49 27.05.2008 14:56
preg_match zur eingabe Überprüfung pepepro PHP Tipps 2006 9 16.05.2006 19:28
URL Eingabe in Formular-Eingabefeld PHP Tipps 2005-2 3 22.09.2005 11:02
2 fensterladen 1 dauerladen 1 davon nur nach eingabe laden PHP-Fortgeschrittene 9 08.06.2005 18:53
[Erledigt] Eingabe in Textfeld A, Ausgabe Textfeld B wie? HTML, Usability und Barrierefreiheit 2 01.06.2005 18:09
Acces Denied bei falscher Eingabe PHP Tipps 2005 7 09.03.2005 09:21
Eingabe "sofort antworten" Off-Topic Diskussionen 6 25.01.2005 16:17
Überprüfung ob Eingabe = Nummer, etc.. PHP Tipps 2004-2 2 21.11.2004 19:35
[Erledigt] Select Feld - Eingabe merken ?!? PHP-Fortgeschrittene 4 18.11.2004 12:30
[Erledigt] Formular auf richtige Eingabe prüfen PHP Tipps 2004-2 1 16.11.2004 13:56
datum eingabe mittels formular + 6wochen PHP Tipps 2004 6 17.10.2004 20:53
Klasse wärend der Laufzeit ergänzen Spyker PHP Tipps 2004 3 12.08.2004 15:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php cli eingabe, php cli benutzereingabe, php cli eingabe lesen, php cli abfrage, cli php eingabe, php cli tastatureingabe, php eingabe cli, php kommandozeilen benutzereingabe, php command line benutzereingaben, php cli benutzereingaben, cli eingabe php, cli php script anhalten bestätigung, php file zur laufzeit lesen, php benutzereingabe cli, php cli abfragen, php cli eingabeaufforderung, php cli eingaben, php eingabe zur laufzeit, php meü bauen, php von der eingabe lesen cli

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.