Variable nach einem bestimmten Text durchsuchen

Eliana

Grünschnabel
Hallo :-) Ich habe ein kleines Problem. Ich möchte eine Variable auf einen bestimmten Anfang durchsuchen. Ein kleines Beispiel:

$text = "Hallo Eliana";

Ich möchte nun prüfen, ob die Variable $text mit Hallo beginnt und wenn ja, dann soll das Hallo weg und der Nickname wird zur Variable $nick. Das mit dem Hallo weg und Nick wird Variable $nick hab ich schon. Aber ist es möglich, eine Variable nach einem bestimmten Inhalt zu durchsuchen? Also wie in meinem Fall, dass Hallo zu suchen? Es geht ja nicht einfach mit if ($text =="Hallo") {dann tu das und das} weil der Text ja nicht nur nur Hallo ist sondern auch noch den Nicknamen enthält.
Weiss da vielleicht jemand eine Lösung?
 
Erst einmal willkommen im Forum.


Zu deinem Anliegen: Das Einfachste wäre die Verwendung eines regulären Ausdrucks:
PHP:
<?php

	$string = 'Hallo Eliana';
	$string = preg_replace('/^Hallo/', '', $string);
	echo $string;

?>
 
Okay, das war zwar das, was ich schon wusste, aber das brachte mich leider nicht weiter. Ich schilder mal das genaue Problem :)

Im Chat wird eingegeben: /kiss Eliana
Nun soll überprüft werden, ob der Text mit /kiss beginnt und wenn ja, dann soll die Variable in zwei neue Variablen geteilt werden. Nämlich der Text und der Nickname. Denn wenn ich nur /kiss durch einen neuen Text ersetze, würd da warscheinlich sowas rauskommen: Tom küsst mal ganz lieb auf die Wange Eliana.
Und da auch noch andere Funktionen (im Sinne von /kiss) in dem Script vorkommen, kann ich ja nicht einfach echo "$string mal ganz lieb auf die Wange." eingeben. Was ist dann mit /help oder so. Ich hoffe ihr versteht wie ich das meine. Es müsste ja irgendwie eine if Abfrage geben.
if (String mit /kiss) {dann nimm den Namen aus dem String und schreibe folgenden Text}
 
PHP:
<?php

	$string = '/kiss Eliana';
	$string = preg_replace('/^\x2F(kiss)\x20(.*)/e', "bla('\\1', '\\2')", $string);
	function bla($cmd, $username) {
		switch( $cmd ) {
			case 'kiss':
				return 'Tom küsst '.$username.' mal ganz lieb auf die Wange.';
				break;
		}
	}
	echo $string;

?>
 
Pkay nu hab ich doch noch ein neues Problem :-) Ich hab ja nun die Funktion von oben für die Texte wie /kiss Nickname. Aber sobald ich nun einen Befehl einbauen möchte, der keinen Nicknamen enthält, wird nix ausgegeben. Ich habs dann mal versucht mit if ($var == "/help") {$var2 ="der entsprechende Text";} Die Funktion funktioniert solange ich keine weiteren Dinge einbaue wie diese if Abfrage und umgekehrt ebenso. Aber beides zusammen geht nun nicht. Irgendwie sollte es aber doch auch möglich sein, dass man einen Befehl z.b. /cu (Eliana verabschiedet sich von allen.) auch mit Nicknamen verwenden kann /cu Nick ( Eliana verabschiedet sich von Nick). Wie geht das? :suspekt:

EDIT: Einfach '.$username.' weglassen geht net. Dann geht garnichts mehr :(
 
Zuletzt bearbeitet:
Zurück