strpos und String abschneiden
Chris
- php
Hallo,
ich habe einen String und aus diesem möchte ich einen bestimmten Text ausschneiden. Versucht habe ich es so:
$str = "Sony Vaio VGN-BX394VP Core 2 Duo T5500 2x 1.66GHz • 1024MB • 80GB • DVD+/-RW DL • Intel GMA950 onboard Grafik max.12...";
$sony_int_start = strpos($str, 'VGN-');
$sony_int_end = strpos($str, ' ') - $sony_int_start;
substr($str, $sony_int_start, $sony_int_end)
Er soll mir eigentlich nur "VGN-BX394VP" wiedergeben. Ich suche deshalb nach VGN- und will alles danach ausschneiden, wenn das erste Leerzeichen nach VGN- kommt.
Bisher gibt er mir nur "VGN-BX394VP Core 2 Duo T5500 2x 1.66GHz • 1024MB • 80GB • DVD+/-RW DL • Intel GMA950 onboard Grafik max" wieder. Also die erste Forderung hat er also geschluckt, aber wie bekomme ich es nun hin, dass danach alles verschwindet, wenn nach dem VGN- das erste Leerzeichen vorkommt?
Danke und viele Grüße
Chris
Hello,
$str = "Sony Vaio VGN-BX394VP Core 2 Duo T5500 2x 1.66GHz • 1024MB • 80GB • DVD+/-RW DL • Intel GMA950 onboard Grafik max.12...";
$sony_int_start = strpos($str, 'VGN-');
$sony_int_end = strpos($str, ' ') - $sony_int_start;
nutze den zweiten Parameter von strpos.
substr($str, $sony_int_start, $sony_int_end)
Rouven
Hi
nutze den zweiten Parameter von strpos.
Ähm du meinst Offset? Ja ok, aber wie finde ich mit Offset dann das erste Leerzeichen nach VGN-? Mit 1 leider nicht :/
hi,
Ähm du meinst Offset? Ja ok, aber wie finde ich mit Offset dann das erste Leerzeichen nach VGN-? Mit 1 leider nicht :/
In dem du ab der Position, wo VGN- gefunden wurde, nach " " suchst.
gruß,
wahsaga
hi
In dem du ab der Position, wo VGN- gefunden wurde, nach " " suchst.
Ja aber genau das bekomm ich doch nicht hin :/ Er rutscht immer nur bis ganz zum Ende, aber nicht nach dem Leerzeichen nach VGN-
hi,
Ja aber genau das bekomm ich doch nicht hin :/
Das ist eine absolut unbrauchbare Info.
Er rutscht immer nur bis ganz zum Ende, aber nicht nach dem Leerzeichen nach VGN-
Dann lass dir die Positionen, die du ermittelst, zur Kontrolle ausgeben.
Ermittle parallel, wie die richtigen Werte lauten müssten.
Überlege dann wie, du mit ersteren auf letztere kommen kannst.
gruß,
wahsaga
Hi!
hi
In dem du ab der Position, wo VGN- gefunden wurde, nach " " suchst.
Ja aber genau das bekomm ich doch nicht hin :/ Er rutscht immer nur bis ganz zum Ende, aber nicht nach dem Leerzeichen nach VGN-
Jaja, ich weiß, wir sind hier im SELF-Forum, aber manchmal sieht man einfach den Code vor lauter Zeichen nicht.
Also bevor du noch verzweifelst, hier die subtilen Hinweise mal im Klartext:
$sony_int_end = strpos($str, ' ', $sony_int_start);
;-)
mfG
Hi
Jaja, ich weiß, wir sind hier im SELF-Forum, aber manchmal sieht man einfach den Code vor lauter Zeichen nicht.
Also bevor du noch verzweifelst, hier die subtilen Hinweise mal im Klartext:
$sony_int_end = strpos($str, ' ', $sony_int_start);
Vielen Dank, genauer gesagt war es dann:
$sony_int_end = strpos($str, ' ', $sony_int_start) - 10;
:D
hi,
$sony_int_end = strpos($str, ' ', $sony_int_start);
Vielen Dank, genauer gesagt war es dann:
$sony_int_end = strpos($str, ' ', $sony_int_start) - 10;
:D
Das ist, genauer gesagt, Blödsinn.
(Ja, es mag in diesem Falle "funktionieren" - aber es entbehrt vermutlich jeder logischen Begründung, bzw. dürfte die 10 der Wert sein, den du lediglich durch "Probieren" ermittelt hast, und nicht durch Nachdenken(?).)
"Richtig" wäre, beim dritten Parameter von substr Startposition von Endposition abzuziehen - weil substr eben nicht Start- und Endpunkt, sondern Startpunkt und _Länge_ haben will.
gruß,
wahsaga
Hi!
Das ist, genauer gesagt, Blödsinn.
(Ja, es mag in diesem Falle "funktionieren" - aber es entbehrt vermutlich jeder logischen Begründung, bzw. dürfte die 10 der Wert sein, den du lediglich durch "Probieren" ermittelt hast, und nicht durch Nachdenken(?).)
"Richtig" wäre, beim dritten Parameter von substr Startposition von Endposition abzuziehen - weil substr eben nicht Start- und Endpunkt, sondern Startpunkt und _Länge_ haben will.
Stimmt natürlich. Ich habe nur ...end gesehen und bin davon ausgegangen, dass Chris den Endpunkt braucht.
mfG