Eine Variable...

Feldhofe

Erfahrenes Mitglied
Hallöchen!

Irgendwie muß das doch gehen, daß man eine Variable auseinder nehmen kann.... :rolleyes:

Der User gibt einen Text ein, und falls er mit was bestimmten beginnt, soll der hintere Teil eine eigene Variable werden.

Beispiel: User gibt ein: /go chatroom.
Da die Nachricht mit "/go" anfängt, wird eine bestimmte Aktion ausgeführt.
Nun soll der zweite Teil ja auch noch als Variable festgelegt werden, nennen wir sie z.B. $raum. $raum müßte dann ja "chatroom" sein...wie kann man sowas realisieren??

Gruß
Feldhofe
 
Danke! Versteh das aber nicht so recht:

array explode ( string separator, string string [, int limit])
Gibt ein Array aus Strings zurück. Jeder String ist ein Teil von string. Die Trennung erfolgt an der mit separator angegebenen Zeichenkette (ein oder mehrere Zeichen). Ist der Parameter limit angegeben, werden maximal limit Teile zurück gegeben. Das letzte Element enthält dann den ganzen Rest von string.

Beispiel 1. explode()-Beispiel:

$pizza = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$pieces = explode (" ", $pizza);

Also in diesem Beispiel haben sie das Leerzeichen als Trenner verwendet, und in $pieces sind dann die einzelnen Teile drin, die ich durch diesen Array-Befehl (wie war das noch, mysql_fetch_array??) als result[0] usw. einzeln ausgeben lassen??

Aber wie krieg ich das denn bei meinem Beispeil hin, (/go chatroom), das Leereichen ist doch auch eigentlich bei jedem normalen Post drin!?
 
Stimmt das mit dem lehrzeichen ist relativ ungünstig...
wie wäre es mit sowas :
PHP:
$string = "PHP";
$container = "I love writing PHP code.";

if(strstr($container,$string)) {
     echo "found it.";
} else {
     echo "not found.";
}

tob
 
Hmmm...das ist dann ja eher so eine Art Suche!
Ich brauche das ja so, daß:

Wenn die Variable "$text" mit "/go" beginnt, soll das darauffolgende Wort als eigene Variable isoliert werden!

Und ich glaube, das geht weder mit dem einen noch mit dem anderen, oder täusche ich mich?

Gruß
Feldhofe
 
$string = "/go chatroom";

$container = "/go chatroom";



if(strstr($container,$string)) {

     $array = explode($container);
$go = array[1];

} else {

     echo "no command !";

}
 
Nein, so geht es ja uch nicht!
"chatroom" war ja nur ein Beispiel, da kann der User frei einen Namen wählen...

Feldhofe
 
dann lass dass halt einfach weg:
PHP:
$string = "/go ";
$container = "/go partnertreff";

if(strstr($container,$string)) { 
     $array = explode($container);
     $go = array[1];
} else {
     echo "no command !";
}

mit strpos() kann man dann auch noch testen ob /go wirklich ganz am anfang steht .
 
Zuletzt bearbeitet:
Neee...das geht leider irgendwie auch nicht! :(

Habe das jetzt so gemacht:

$text ist der vom User eingegebene Text.

PHP:
$room_key = '/go ';
$container = $text;

if(strstr($container,$room_key)) {
     $array = explode($container);
     $room_name = $array[1];
echo "Ja! Raumname ist: $room_name ";
}


else
{
     echo "no command Raumname ist: $room_name !";
}

Wenn im Text nicht /go enthalten ist, wird der else-Teil durchlaufen.

Ist er aber enthalten, kommt als Ausgabe "ja!", aber auch immer eine Fehlermeldung:
Warning: Wrong parameter count for explode() in ... on line 78.

Line 78 ist die fett markierte.
Der nach /go folgende Text ist leider auch nicht in die Variable $room_name geschrieben worden...woran kann das liegen??


Feldhofe
 
Zuletzt bearbeitet:
Zurück