Parameter aus String entnehmen

rollerueckwaerts

Erfahrenes Mitglied
Hallo tutorials.de Gemeinde,
ich finde leider nicht den richtigen Befehl für das was ich machen möchte, hab schon Versucht den String zu beschneiden, aber alles viel zu umständlich ...

Ich möchte aus dem String:
HTML:
index.php?page=shop.product_details&product_id=17&category_id=8&Itemid=59
die product_id entnehmen. So das ich in meiner Variablen nur noch die 17 gespeichert habe.

Der String steht nicht in der Browserzeile :-)

Wie krieg ich das hin ?
 
*edit*
Argh, "nicht"! :D

*edit2*
Du könntest einen Regulären Ausdruck verwenden:
PHP:
$string = 'index.php?page=shop.product_details&product_id=17&category_id=8&Itemid=59';
$pattern = '@.*product_id=(.\d).*@is';

preg_match( $pattern, $string, $result );
Sollte tun.. ;)
 
Zuletzt bearbeitet:
Danke dir erstmal ... ich schnalls zwar noch nich .. und irgendwie funktionierts auch nich.

PHP:
echo $result;
bringt nur die Ausgabe Array :(

Bin gerad dabei mal das Manual durchzulesen ... vielleicht werd ich ja schlauer.
 
@Da_Chris
Die Funktion ist irgendwie an mir vorbei gegangen, hab die bis eben gar nicht gekannt.
Funktioniert aber prächtig. ;)

Wobei ich es äußerst bedenklich finde, dass sie einfach Variablen anlegt. Somit kann schnell mal was überschrieben werden, das sollte einem bei der Verwendung bewusst sein.

Hast du irgendwo einen Benchmark zu dieser Funktion? Auf die Schnelle konnte ich nichts finden. Intern muss PHP jedoch auch irgendeine Art regulären Ausdruck anwenden, von daher würde mich interessieren ob es wirklich einen relevanten Vorteil bringt.

@rollerueckwaerts
Du kannst dir mit var_dump( $result ) den Inhalt und den Datentyp der Variable zurück geben lassen. Dort siehst du auch an welcher Position welcher Wert steht.

Diese Funktion solltest du dir gut merken, du wirst sie noch sehr oft brauchen. ;)
 
@Da_Chris
Die Funktion ist irgendwie an mir vorbei gegangen, hab die bis eben gar nicht gekannt.
Funktioniert aber prächtig. ;)

Wobei ich es äußerst bedenklich finde, dass sie einfach Variablen anlegt. Somit kann schnell mal was überschrieben werden, das sollte einem bei der Verwendung bewusst sein.
mh Manual lesen und freuen ;)
PHP:
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz


Hast du irgendwo einen Benchmark zu dieser Funktion? Auf die Schnelle konnte ich nichts finden. Intern muss PHP jedoch auch irgendeine Art regulären Ausdruck anwenden, von daher würde mich interessieren ob es wirklich einen relevanten Vorteil bringt.
Benchmark hab ich keinen aber bei größeren Anwendungen sollte man möglichst vorsichtig mit regulären Ausdrücken umgehen da die allgemein Rechenaufwendig sind.

Super geil !! Geunau das hab ich gesucht.

Klasse !!
;)
 
Zurück