String nach bestimmten Wort durchsuchen

piti66

Erfahrenes Mitglied
Hey,

habe zum Beispiel folgenden String:

amonat=1 ajahr=2006 emonat=3 ejahr=2006 suche=compu act=inaktiv pw= alias_31_x=5 alias_31_y=8

Jetzt brauch ich daraus einen bestimmten Wert! Nämlich bei einen der Alias_ Werte die 31! Ist nämlich die ID die übergeben wurde!
Wie kann ich jetzt den String nach dem Wort Alias durchsuchen und dann die 31 rausfiltern!

Hab es schon mit explode und so probiert erfüllt aber irgendwie nicht den Zweck!

Jemand ne idee?

mfg

sebastian
 
Ein fast identisches Thema gab es gestern bereits.
String durchsuchen

Das Thema findet sich sogar noch auf der 1. Seite, da braucht man noch nichtmal die Suchfunktion fuer bemuehen.
Hast ja offensichtlich fleissig gesucht, was? :rolleyes:
 
Probier mal Folgendes:
PHP:
preg_match_all('/alias_([0-9]+)_x/', $string, $matches);
var_dump($matches);
 
Danke erstmal!
Gumbo wenn ich es so mach wie du sagst kommt nur:
array(2) { [0]=> array(0) { } [1]=> array(0) { } }

Leider der Wert nicht drin!

mfg
 
Hab es jetzt mal so probiert!

$str = split('alias',$parameter);
$str = split('x',$str[1]);
$str = $str[0];
echo preg_replace("_"," ",$str);
echo $str;

bleibt _31_ übrig! Die unterstriche wollt ich durch dass preg_replace entfernen geht, aber irgendwie nicht!

mfg
 
Hast Du Dir meinen Link mal angesehen?
Da findest Du ein Beispiel was in eine (zugegebenermassen etwas laengere) Zeile passt.

Um 2 mal das selbe Zeichen zu ersetzen sind RegExp wohl etwas uebertrieben. str_replace() wird's da voll und ganz tun.

So sollte das klappen:
PHP:
echo substr($str,strpos($str,'alias_')+6,strpos($str,'_',strpos($str,'alias_')+6)-strpos($str,'alias_')-6);
 
Schau dir mal bei PHP.net die Syntax zu preg_match_all an. Überleg dir, welche Konstante du als flags-Parameter übergeben willst (siehe Erklärung bei php.net).

Eigentlich sollte dann ein verwertbares Ergebnis rauskommen.
 
Danke Jungs!

Habs so gemacht!

$str = split('alias',$parameter);
$str = split('_x',$str[1]);
$str = $str[0];

mfg

sebastian
 
Ich weiß zwar nicht, wie du meinen Vorschlag angewandt hast, bei mir funktioniert Folgendes aber einwandfrei:
PHP:
<?php

	$string = 'amonat=1 ajahr=2006 emonat=3 ejahr=2006 suche=compu act=inaktiv pw= alias_31_x=5 alias_31_y=8';
	preg_match_all('/(?<=alias_)[0-9]+(?=_x)/', $string, $matches);
	var_dump($matches);

?>
Lass dich vom veränderten regulären Ausdruck nicht beirren, er ist nur auf das Wesentliche optimiert.
 
Gumbo hat gesagt.:
Ich weiß zwar nicht, wie du meinen Vorschlag angewandt hast, bei mir funktioniert Folgendes aber einwandfrei:
PHP:
<?php

    $string = 'amonat=1 ajahr=2006 emonat=3 ejahr=2006 suche=compu act=inaktiv pw= alias_31_x=5 alias_31_y=8';
    preg_match_all('/(?<=alias_)[0-9]+(?=_x)/', $string, $matches);
    var_dump($matches);

?>
Lass dich vom veränderten regulären Ausdruck nicht beirren, er ist nur auf das Wesentliche optimiert.

Bei mir stehen da wie gesagt keine Werte drin! Weiß auch nicht, aber trotzdem danke Gumbo!

mfg
 
Zurück