PHP5 - Skipt in Array und switch case

Hallo,
ich lade eine Textdatei in ein Array. Danach möchte ich einen Text (rot
oder gruen) per switch case auswerten. Leider hat das noch nicht geklammp.

//
$an = $out(array["3"]; //hier ist rot oder gruen
switch($an)
{
case "rot": $va = 'ff0000'; break; //ab hier soll $va ihren Wert
//bekommen
case "gruen": $va = 'cc00cc';break;
}
echo $va; //Hier soll der Wert angezeigt
//werden
//
Anmerkung: Wenn ich rot oder gruen in "" direkt eingebe klappt die
Funktion. Da ich aber nie weiß ob rot oder gruen gefragt ist,

meine Frage: Was macht ich falsch?

Danke für Eure Hilfe.

PS, wenn ich hier falsch bin nicht schimpfen, ich bin hier neu.
Gruß
Hannes
Hannes [ Fr, 19 Oktober 2007 15:32 ] [ ID #1849518 ]

Re: PHP5 - Skipt in Array und switch case

$out(array["3"]);
????

Hannes schrieb:
> Hallo,
> ich lade eine Textdatei in ein Array. Danach möchte ich einen Text (rot
> oder gruen) per switch case auswerten. Leider hat das noch nicht geklammp.
>
> //
> $an = $out(array["3"]; //hier ist rot oder gruen
> switch($an)
> {
> case "rot": $va = 'ff0000'; break; //ab hier soll $va ihren Wert
> //bekommen
> case "gruen": $va = 'cc00cc';break;
> }
> echo $va; //Hier soll der Wert angezeigt
> //werden
> //
> Anmerkung: Wenn ich rot oder gruen in "" direkt eingebe klappt die
> Funktion. Da ich aber nie weiß ob rot oder gruen gefragt ist,
>
> meine Frage: Was macht ich falsch?
>
> Danke für Eure Hilfe.
>
> PS, wenn ich hier falsch bin nicht schimpfen, ich bin hier neu.
> Gruß
> Hannes
Clemens Forster [ Fr, 19 Oktober 2007 15:40 ] [ ID #1849519 ]

Re: PHP5 - Skipt in Array und switch case

Hannes schrieb:
> $an = $out(array["3"]; //hier ist rot oder gruen

Was soll die Zeile denn genau machen?

$out ist eine Variable, die höchstens den Funktionsnamen als
String beinhalten kann
( der Beginn einer Parameterliste für eine Funktion/Methode
array["3"] gibt es nicht
) Funktion wird nicht geschlossen

> switch($an)
> {
> case "rot": $va = 'ff0000'; break; //ab hier soll $va ihren Wert
> //bekommen
> case "gruen": $va = 'cc00cc';break;
> }
> echo $va; //Hier soll der Wert angezeigt
> //werden
> //
> Anmerkung: Wenn ich rot oder gruen in "" direkt eingebe klappt die
> Funktion. Da ich aber nie weiß ob rot oder gruen gefragt ist,

Und wenn die Variable weder "rot" oder "gruen" ist? Dann haste ein
kleines Problem, weil $va keinen Wert zugewiesen bekommen hat.

Daher würde ich $va wenigstens einen leeren String zuweisen, den diese
dann behaltet, falls keines von beidem zutrifft:

$va = '';
switch($an)
{
case "rot": $va = 'ff0000';
break;
case "gruen": $va = 'cc00cc';
break;
}
echo $va;

Der Schönheit halber würde ich für $va auch einen passenderen Namen wie
$farbe geben. Variablennamen sollten immer selbstsprechend sein, sodass
man am Namen erkennt, wofür diese sind.

> PS, wenn ich hier falsch bin nicht schimpfen, ich bin hier neu.

wir schimpfen doch nie, sondern weißen die Leute immer lieb woanders
hin, wenn jemand falsch ist. :) Aber bist hier schon richtig.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Fr, 19 Oktober 2007 15:53 ] [ ID #1849520 ]

Re: PHP5 - Skipt in Array und switch case

Von mir gerade falsch geschrieben: im Programm steht: $out($array["3"]);


Clemens Forster schrieb:
> $out(array["3"]);
> ????
>
> Hannes schrieb:
>> Hallo,
>> ich lade eine Textdatei in ein Array. Danach möchte ich einen Text (rot
>> oder gruen) per switch case auswerten. Leider hat das noch nicht geklammp.
>>
>> //
>> $an = $out(array["3"]; //hier ist rot oder gruen
>> switch($an)
>> {
>> case "rot": $va = 'ff0000'; break; //ab hier soll $va ihren Wert
>> //bekommen
>> case "gruen": $va = 'cc00cc';break;
>> }
>> echo $va; //Hier soll der Wert angezeigt
>> //werden
>> //
>> Anmerkung: Wenn ich rot oder gruen in "" direkt eingebe klappt die
>> Funktion. Da ich aber nie weiß ob rot oder gruen gefragt ist,
>>
>> meine Frage: Was macht ich falsch?
>>
>> Danke für Eure Hilfe.
>>
>> PS, wenn ich hier falsch bin nicht schimpfen, ich bin hier neu.
>> Gruß
>> Hannes
Hannes [ Fr, 19 Oktober 2007 16:02 ] [ ID #1849521 ]

Re: PHP5 - Skipt in Array und switch case

Hannes schrieb:
> Von mir gerade falsch geschrieben: im Programm steht: $out($array["3"]);

Aha. Und wie sieht $out und $array aus?

1.17. Wie stelle ich meine Frage an die Newsgroup am sinnvollsten?
http://www.php-faq.de/q/q-newsgroup-fragen.html

1.15. Was ist TOFU? Wieso finden die Anderen meine Artikel schwer zu lesen?
http://www.php-faq.de/q/q-newsgroup-tofu.html
dafox [ Fr, 19 Oktober 2007 16:12 ] [ ID #1849522 ]

Re: PHP5 - Skipt in Array und switch case

Berichtigung vom Freitag.

Hier ist mein Code direkt aus meinem Programm. Am Freitag habe ich meine
Anfrage aus dem Ged‰chnis nach geschrieben. Dabei ist mir ein Fehler
unterlaufen den Ihr gefunden hapt.



// Original Code
// Hier wird die Textdatei gepr¸ft eingelesen und ggf. in
// htlm code umgewandelt
// ----Hier klappt alles!----

if (file_exists("programm.txt"))
{
}
else
{
print "programm.txt existiert " . "<b>" . "nicht " .
</b><br><br>";
}
$input_file = file("programm.txt");

$i = count($input_file);

for ($n = 0; $n < $i; $n++)
{
$out["$n"] = htmlentities($input_file["$n"]) . "<br>";
}

// Hier brauche ich den Inhalt der 21 Stelle des Array's $out
// ($out["20"]) die an
// die switch Funktion üergeben werden soll.
// Der ----Inhalt von $out["20"] ist ein String----
// ----Hier klappt es nicht!---
// Es werden keine Sonderzeichen oder Umlaute verarbeitet.

switch($out["20"])
{
// übergebe ich direkt lyellow oder red an switch klappt alles.

case "lyellow": $farbe1 = 'ffffcc'; break;
case "red": $farbe1 = 'ff0000'; break;

}

// ----Keine Anzeige bei diesem Code----
// Gewünschte Ausgabe: ffffcc oder ff0000

// Die Ausgabe ist wichtig, damit mˆchte ich
// die Farbeinstellung im HTML Code
// steuern.

echo $farbe1;

Meine Frag nun, wie mufl der Inhalt von $out["20"] vorbereitet werden,
damit switch richtig arbeitet?

Ich danke Euch schon heute für Eure Hilfe.
Hannes

Thomas Hamacher schrieb:
> Hannes schrieb:
>> Von mir gerade falsch geschrieben: im Programm steht: $out($array["3"]);
>
> Aha. Und wie sieht $out und $array aus?
>
> 1.17. Wie stelle ich meine Frage an die Newsgroup am sinnvollsten?
> http://www.php-faq.de/q/q-newsgroup-fragen.html
>
> 1.15. Was ist TOFU? Wieso finden die Anderen meine Artikel schwer zu lesen?
> http://www.php-faq.de/q/q-newsgroup-tofu.html
Hannes [ Sa, 20 Oktober 2007 15:03 ] [ ID #1850152 ]

Re: PHP5 - Skipt in Array und switch case

Hannes schrieb:

> // Original Code
> // Hier wird die Textdatei gepr¸ft eingelesen und ggf. in
> // htlm code umgewandelt
> // ----Hier klappt alles!----
>
> if (file_exists("programm.txt"))
> {
> }
> else
> {
> print "programm.txt existiert " . "<b>" . "nicht " .
> </b><br><br>";
> }

a) warum machst du kein if (!file_exists("programm.txt")) {}? Dann kannst du
dir das "else" sparen.
b) vor dem "</b>" fehlt ein Anführungszeichen ".
c) warum den String aus soviel Einzelteilen zusammensetzen?

> $input_file = file("programm.txt");
>

Was gibt ein var_dump($input_file) hier aus?

> $i = count($input_file);
>
> for ($n = 0; $n < $i; $n++)
> {
> $out["$n"] = htmlentities($input_file["$n"]) . "<br>";
> }

a) Warum machst du hier kein foreach()?
b) Was gibt ein var_dump($out) hier aus?
c) abgesehen davon müsste es $input_file[$n] und $out[$n] sein.

>
> // Hier brauche ich den Inhalt der 21 Stelle des Array's $out
> // ($out["20"]) die an
> // die switch Funktion üergeben werden soll.
> // Der ----Inhalt von $out["20"] ist ein String----
> // ----Hier klappt es nicht!---
> // Es werden keine Sonderzeichen oder Umlaute verarbeitet.
>
> switch($out["20"])
> {
> // übergebe ich direkt lyellow oder red an switch klappt alles.
>
> case "lyellow": $farbe1 = 'ffffcc'; break;
> case "red": $farbe1 = 'ff0000'; break;

a) hier müsste es also auch $out[$n] sein.
b) du hast ja an jeden Wert ein .'<br>' drangehängt...

>
> }
>
> // ----Keine Anzeige bei diesem Code----
> // Gewünschte Ausgabe: ffffcc oder ff0000
>
> // Die Ausgabe ist wichtig, damit mˆchte ich
> // die Farbeinstellung im HTML Code
> // steuern.
>
> echo $farbe1;

Könnte dann so aussehen (sofern $input_file passend erzeugt wird):
| <?php
| error_reporting(E_ALL);
|
| $farbe1 = '';
|
| if (!file_exists("programm.txt")) {
| echo 'programm.txt existiert <b>nicht</b><br><br>';
| } else {
| $input_file = file('programm.txt');
|
| $out = array();
| foreach ($input_file as $key => $value) {
| $out[$key] = htmlentities($value).'<br>';
| }
|
| if (isset($out[20])) {
| switch($out[20]) {
| case 'lyellow<br>':
| $farbe1 = 'ffffcc';
| break;
| case 'red<br>':
| $farbe1 = 'ff0000';
| break;
| }
| }
| }
|
| echo $farbe1;
| ?>

Gruß
Carsten
Carsten Wiedmann [ Sa, 20 Oktober 2007 15:45 ] [ ID #1850155 ]

Re: PHP5 - Skipt in Array und switch case

Hannes schrieb:

> if (file_exists("programm.txt"))
> {
> }
> else
> {
> print "programm.txt existiert "

Warum wird "programm.txt existiert " ausgegeben, wenn die Datei nicht
exisitiert?

Martin
Martin Lemke [ Mo, 22 Oktober 2007 22:34 ] [ ID #1851654 ]

Re: PHP5 - Skipt in Array und switch case

Hannes schrieb:

> Von mir gerade falsch geschrieben: im Programm steht: $an=$out($array["3"]);

Und was soll damit erzielt werden? Ich habe so eine komische Konsdtruktion
noch nie gesehen.

Erzeugst Du Deinen Sourcecode mit einem Zufallsgenerator?

Martin
Martin Lemke [ Mo, 22 Oktober 2007 22:41 ] [ ID #1851655 ]

Re: PHP5 - Skipt in Array und switch case

Martin Lemke schrieb:
> Hannes schrieb:
>
>> if (file_exists("programm.txt"))
>> {
>> }
>> else
>> {
>> print "programm.txt existiert "
>
> Warum wird "programm.txt existiert " ausgegeben, wenn die Datei nicht
> exisitiert?

wenn das eine scherzfrage ist, dann lass es. Wenn es keine ist, dann
lass es auch besser sein...

if (file_exists("programm.txt")) Wenn die Datei existiert
{ Dann mache nichts
}
else ansonsten (wenn Sie nicht existiert)
{
print "programm.txt existiert"; Gib aus, dass diese existiert


Ich denke da solltest selbst feststellen was da so blöd daran ist.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mo, 22 Oktober 2007 23:01 ] [ ID #1851657 ]

Re: PHP5 - Skipt in Array und switch case

Christoph Herrmann schrieb:
> Martin Lemke schrieb:

>> Warum wird "programm.txt existiert " ausgegeben, wenn die Datei nicht
>> exisitiert?
>
> Ich denke da solltest selbst feststellen was da so blöd daran ist.

Ich vermute mal, Martin wollte den OP mit dieser Frage genau auf diesen
Punkt hinweisen. Hätte Martin gleich "Warum willst du ... ausgeben"
statt "Warum wird ... ausgegeben" geschrieben, wäre das deutlicher gewo=
rden.

MfG
Niels

--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Niels Braczek [ Di, 23 Oktober 2007 02:59 ] [ ID #1852555 ]

Re: PHP5 - Skipt in Array und switch case

Martin Lemke schrieb:

> Hannes schrieb:
>
> > if (file_exists("programm.txt"))
> > {
> > }
> > else
> > {
> > print "programm.txt existiert "
>
> Warum wird "programm.txt existiert " ausgegeben, wenn die Datei nicht
> exisitiert?

Hm, habe ich da irgendwas verpasst? Das "Orginal" was du da zitierst, sieht
bei mir zumindest so aus:
| > Hannes schrieb:
| >
| > > if (file_exists("programm.txt"))
| > > {
| > > }
| > > else
| > > {
| > > print "programm.txt existiert " . "<b>" . "nicht " .
| > > </b><br><br>";
| > > }
(das da ein Anführungszeichen fehlt, wurde ihm ja schon gesagt)

?

Gruß,
Carsten
Carsten Wiedmann [ Di, 23 Oktober 2007 03:45 ] [ ID #1852556 ]

Re: PHP5 - Skipt in Array und switch case

Martin Lemke schrieb:

> Hannes schrieb:
>
>> if (file_exists("programm.txt"))
>> {
>> }
>> else
>> {
>> print "programm.txt existiert "
>
> Warum wird "programm.txt existiert " ausgegeben, wenn die Datei nicht
> exisitiert?

Wenn Du Dir die Programmstelle, die Du verstümmelt und damit leider
sinnentstellend zitiert hast, mal _genau_ und vor allem _vollständig_
anschaust, wirst Du feststellen, dass genau das eben _nicht_ ausgegeben
wird.


Gruß. Claus
Claus Reibenstein [ Di, 23 Oktober 2007 09:06 ] [ ID #1852557 ]
PHP » de.comp.lang.php.misc » PHP5 - Skipt in Array und switch case

Vorheriges Thema: Frage zu Rewrite
Nächstes Thema: Abfrage mySQL