php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.10.2011, 17:22  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Null als Input in Shell-Script beendet Skript

Hi,

ich habe folgendes kurzes Shell-Skript, welches einfach nur den gedrückten Buchstaben ausgibt:
PHP-Code:
#!/usr/bin/php
<?php

// set terminal to return single chars 
`stty -icanon`;

// set terminal to hide input
`stty -echo`;

// hide cursor
echo "\033[?25l";

// read single char input
while ($c fread(STDIN1)) {
    echo 
"$c\n";
    
    
// reset terminal settings
    
if ($c == 'q') {
        `
stty echo`;
        echo 
"\033[?25h";
        die();
    }
}
Ich frage mich jetzt, warum sich das Script sofort beendet, wenn man die Null drückt. Vor allem, weil man das auch gar nicht abfangen kann (man kommt bei der 0 gar nicht in die while-Schleife herein).
Kann mir das jemand erklären?

Gruß,
Christoph
McSodbrenner ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.10.2011, 17:26  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Weil (bool)'0' nun mal False ist und Deine Schleife nicht laufen wird. Du prüfst in Deinem Schleifenkopf schließlich, ob der eingegebene Buchstabe äquivalent zu True ist.

Fortgeschritten???

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 10.10.2011, 17:41  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Jetzt werd ich rot. Sorry. Ich war die ganze mit Exit Codes am Suchen, aber hab einfach das Offensichlichste übersehen.

Danke und Gruß,
Christoph
McSodbrenner ist offline   Mit Zitat antworten
Alt 10.10.2011, 20:26  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Kleiner allgemeiner Verbesserungsvorschlag am Rande:

Wenn Du möchtest, dass eine Schleife genau so lange läuft, bis eine wie auch immer geartete Iterierfunktion False zurück liefert, dann bietet es sich an, sowas hier zu schreiben:

PHP-Code:
while (false!==($c DeineFunktion(/* Parameter */))) { 
  
//...

Das gilt im übrigen auch für Funktionen, die ein Array oder False zurück liefern, denn auch ein leeres Array ist Äquivalent zu False.

Wenn man sich sowas gleich von vorn herein angewöhnt, dann kann es zu solchen "Wald vs. Baum"-Problemen nämlich gar nicht erst kommen.

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 11.10.2011, 09:14  
Erfahrener Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 160
PHP-Kenntnisse:
Fortgeschritten
McSodbrenner befindet sich auf einem aufstrebenden Ast
Standard

Danke, hab ich mir einen Zettel auf die Stirn geklebt.
McSodbrenner ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] MySQL + PHP script De Sena PHP Einsteiger 8 09.01.2011 13:50
Frage zu openGeoDb Joe Off-Topic Diskussionen 18 30.11.2010 15:54
Fehler bei CSV Import > MySQL fulltilt Datenbanken 8 20.08.2010 14:53
brauche Hilfe bei Datenbankptimierung Danny Datenbanken 14 04.02.2010 17:23
JS-Kalender funktioniert nicht im IE8 ToxicToast JavaScript, Ajax und mehr 4 18.11.2009 16:26
[Erledigt] Fehler in foreach zoro PHP Tipps 2009 25 08.10.2009 18:25
[Erledigt] Sinnvoller Bilder mit INSERT oder UPDATE in DB speichern? AnnyKey Datenbanken 3 12.05.2009 01:06
[Erledigt] im sql kann ich tabelle nicht hinzufügen autofieber Datenbanken 7 01.03.2009 18:38
Text in Datenbank umwandeln muffinsbacken PHP Tipps 2009 9 07.01.2009 18:40
Shell / Batch Script um mehrere PHP Dateien gleichzeitig auszuführen HackReb PHP-Fortgeschrittene 1 09.09.2008 13:29
PHP/MySQL: QCodo's Code-Generator Zergling-new Tutorials 2 09.05.2008 05:33
Transaktion(en) mit der InnoDB-Engine, aber wie?! PsychoEagle Datenbanken 12 23.07.2007 12:11
Normalisierung einer chaotischen Tabelle maeck Datenbanken 10 12.12.2006 18:17
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
[Erledigt] kurze frage zu screen in einem shell script Server, Hosting und Workstations 4 16.12.2005 21:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
echo -e \\\\033c, shell script echo hide cursor, shell script null, shell script unter php, php shell hide cursor, shell script input, linux shell script schleife bis zustand erreicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:11 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