Zahlen zwischen String ausgeben?
maximilian_1973
- php
0 Bademeister0 dedlfix
Hallo!
Ich suche einen PHP-Code der folgendes macht:
Es wird folgender Text in ein Textfeld eingegeben:
bla 1234 blubb 546658 test 732623
Jetzt soll in folgenden Variablen gespeichert werden:
$bla = 1234
$blubb = 546658
$test 732623
Der Text der eingegeben wird ist immer gleich (die Zahlen ändern sich natürlich...), außer den Fall, das nichts eingegeben wurde:
bla 1234 test 732623
Jetzt soll aber folgendes zugeordnet werden
$bla = 1234
$blubb = 0
$test = 732623
Wie kann ich das realisieren?
mfg
maxi
Hi Maximilian.
Weisst Du, wie man "variable Variablen" anspricht? Wenn ja, dann eine kleine Explosion zu Beginn, und der Rest sollte kein Problem sein, oder?
Variable Variablen sind aber selten sinnvoll, und wenn Du sagst, dass immer derselbe Text eingegeben wird, dann waere es eventuell sinnvoller, ihn nicht einzugeben, sondern nur die Werte? Was hast Du denn vor?
Viele Gruesse,
der Bademeister
Danke erstmal für die schnelle Antwort ;)
Ich habe vor eine Datenbank zu programmieren. Der Text wird aus einem anderen Dokument rauskopiert und in das Textfeld reinkopiert. Es wäre natürlich sehr unkomfortabel, wenn man jedes mal die Felder trennen müsste, besonders weil es sich um mehrere 100 Datensätze handelt ;)
Nach deinen Links habe ich jetzt folgendes herausgefunden:
// Beispiel 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
das kommt meinem ja sehr nahe, wenn man es umformuliert:
// Beispiel 2
$data = "bla 1234 blubb 4637 test 8347";
list($bla $blawert $blubb $blubbwert) = explode(" ", $data);
echo $bla; // bla
echo $blawert; // 1234
Ich denke so müsste es funktionieren. Wenn nicht melde ich mich wieder
Danke ;)
Funktioniert nicht.
$data = "bla 1234 blubb 4637 test 8347";
list($bla $blawert $blubb $blubbwert) = explode(" ", $data);
echo $bla; // bla
echo $blawert; // 1234
Wenn ich z.B. bla 1234 weglasse, ordner er bei bla den blubb wert zu. Wie kriege ich eine richtige Zuordnung hin?
hallo,
Wenn ich z.B. bla 1234 weglasse, ordner er bei bla den blubb wert zu. Wie kriege ich eine richtige Zuordnung hin?
einen defaultwert dazwischen setzen, zum beispiel 0?
Funktioniert nicht.
$data = "bla 1234 blubb 4637 test 8347";
list($bla $blawert $blubb $blubbwert) = explode(" ", $data);
echo $bla; // bla
echo $blawert; // 1234
Wenn ich z.B. bla 1234 weglasse, ordner er bei bla den blubb wert zu. Wie kriege ich eine richtige Zuordnung hin?
In Deinem obigen Beispiel reagierst Du bei der Speicherung der Werte nicht darauf, welche Bezeichner davor stehen. Das musst Du aber natuerlich irgendwie, wenn nicht immer dieselben da stehen.
Mein Vorschlag: Speichere die Daten nicht in separaten Variablen, die Du "variabel" ansprechen musst, sondern in einem assoziativen Array. Die Schluessel sind die Bezeichner, und die Werte sind die Werte (waerste jetzt nicht drauf gekommen, was ;-)).
Wenn Du erstmal das Array hast, das explode zurueckgibt, dann kannst Du diese Array leicht produzieren, oder?
Achtung uebrigens: list() zu benutzen wird dann problematisch, wenn Du nicht weisst, wie viele Werte das Array auf der rechten Seite hat.
Viele Gruesse
der Bademeister
Hi!
Es wird folgender Text in ein Textfeld eingegeben:
bla 1234 blubb 546658 test 732623
Jetzt soll in folgenden Variablen gespeichert werden:
$bla = 1234
$blubb = 546658
$test 732623
Das heißt, du willst beliebigen Text zu Variablennamen machen? Woher weißt du dann, welche Variablen angelegt wurden, damit du sie ansprechen kannst? Oder sind dir die Variablennamen im Prinzip egal, du hättest aber gern eine Zuordnung von dem Text und der dahinter stehenden Zahl? Oder sind die Texte gar bekannt und es können quasi wie beim Lotto in dem Textfeld x von y Varianten vorkommen?
Jedenfalls tät ich hier einen Regulären Ausdruck anwenden, der Text und Zahlen separiert. Das Auswerten kommt später. Beides hängt davon ab, was du konkret willst.
Variable Variablen kann ich nicht empfehlen. Das Mal-da-mal-nicht kannst du in einem Array besser handhaben. Für jeden Datensatz erzeugst du ein neues Array - fertig. Bei variablen Variablen musst du immer erst alle Variablen löschen oder auf einen definierten Wert setzen, bevor du einen neuen Datensatz einliest (im Schleifenbetrieb. Bei einem Datensatz pro Request spielt das natürlich keine Mandoline).
Lo!