2013-03-10 22 views
50

Ich möchte in der Lage sein, ein PHP-Programm warten auf Benutzereingaben. Zum Beispiel:PHP warten auf Eingabe von der Kommandozeile

  1. Script fordert Autorisierungscode vom Server
  2. Script wartet auf Benutzer (dieser Code wird per E-Mail gesendet werden) Autorisierungscode
  3. Script weiter

Wie soll eingeben Ich mache Schritt 2? (Ist es möglich?)

+1

Wie über die man-Seite auf php cli Nutzung lesen, vor allem nützlich wäre dieser Kommentar -> http://www.php.net/manual/en/features.commandline.php#94924 – Crisp

+0

Dank @Crisp, können Sie das eine Antwort machen. – Keelan

+0

Ich glaube nicht, dass dies ein Duplikat der Antwort ist. Sie könnten den von Crisp bereitgestellten Code verwenden, der Dateihandles beinhaltet. Oder benutzen Sie einfach die readline() -Funktion, die zur Benutzereingabe auffordert: http://www.php.net/manual/en/function.readline.php vorausgesetzt, Ihr PHP wurde mit Readline-Unterstützung kompiliert. – Gabe

Antwort

112

Die PHP-man-Seite für die cli ein comment here hat eine Lösung Detaillierung, (kopiert hier für jemand anderen suchen)

<?php 
echo "Are you sure you want to do this? Type 'yes' to continue: "; 
$handle = fopen ("php://stdin","r"); 
$line = fgets($handle); 
if(trim($line) != 'yes'){ 
    echo "ABORTING!\n"; 
    exit; 
} 
fclose($handle); 
echo "\n"; 
echo "Thank you, continuing...\n"; 
?> 
+5

Das ist Gold. Mit einem ziemlich großen "Whoah!" Vibe geht hier, nach Jahren PHP habe ich gerade gelernt, dass Sie das tun können. – Martijn

+0

Kann dies eine Schleife sein, die am Eingang endet? – azurinko

+0

@azurinko ja https://gist.github.com/jordan314/f633a58c68a7d923139b891065365133 – jordan314

Verwandte Themen