Hallo PHP-Profis,
leider habe ich zwei Probleme mite einem regulären Ausdruck, und hoffe, es kann mir hier jemand helfen.
Darum geht es:
aus folgendem, exemplarischen URL möchte ich die [COLOR="Red"]ID[/COLOR] und [COLOR="Green"]Seite[/COLOR] auslesen:
$url = "http://www.domain.de/verzeichnis1/dies-ist-eine-test-URL-[COLOR="Red"]12345[/COLOR]-[COLOR="Green"]34[/COLOR].html";
$id = preg_replace("/\/verzeichnis1\/.*-([0-9]{1,7})-([0-9]{0,3}).htm|html/", "$1 : $2", $url);
echo $id;
ergibt das gewünschte Ergebnis: [COLOR="Red"]12345[/COLOR] : [COLOR="Green"]34[/COLOR]
Nun zu meinen Fragen:
1.) Wenn ich nur die [COLOR="Red"]ID[/COLOR] auslesen möchte, und die 2. Zeile wie folgt ändere:
$id = preg_replace("/\/verzeichnis1\/.*-([0-9]{1,7})-([0-9]{0,3}).htm|html/", "$1", $url);
ist das Ergebnis bei echo $id folgendes:
[COLOR="Red"]12345[/COLOR]1
Wo kommt die "1" hinten dran her? Wie werde ich sie los?
2. Das Suchmuster müsste noch erweitert werden, weil die zu durchsuchenden URLs entweder eine Seitenzahl enthalten oder nicht! D. h. bei einem exemplarischen URL
$url = "http://www.domain.de/verzeichnis1/dies-ist-eine-test-URL-[COLOR="Red"]12345[/COLOR].html";
sollte die [COLOR="Red"]ID[/COLOR] ausgegeben werden und "0" für [COLOR="Green"]Seite[/COLOR].
Wie müsste sich also der preg_replace Befehl ändern, damit beide Arten von URLs erkannt und die [COLOR="Red"]ID[/COLOR] bzw. [COLOR="Green"]Seite[/COLOR] ausgelesen werden?
ID und Seite können jeweils nur Zahlen sein.
Vielen Dank und beste Grüße,
Chriss
leider habe ich zwei Probleme mite einem regulären Ausdruck, und hoffe, es kann mir hier jemand helfen.
Darum geht es:
aus folgendem, exemplarischen URL möchte ich die [COLOR="Red"]ID[/COLOR] und [COLOR="Green"]Seite[/COLOR] auslesen:
$url = "http://www.domain.de/verzeichnis1/dies-ist-eine-test-URL-[COLOR="Red"]12345[/COLOR]-[COLOR="Green"]34[/COLOR].html";
$id = preg_replace("/\/verzeichnis1\/.*-([0-9]{1,7})-([0-9]{0,3}).htm|html/", "$1 : $2", $url);
echo $id;
ergibt das gewünschte Ergebnis: [COLOR="Red"]12345[/COLOR] : [COLOR="Green"]34[/COLOR]
Nun zu meinen Fragen:
1.) Wenn ich nur die [COLOR="Red"]ID[/COLOR] auslesen möchte, und die 2. Zeile wie folgt ändere:
$id = preg_replace("/\/verzeichnis1\/.*-([0-9]{1,7})-([0-9]{0,3}).htm|html/", "$1", $url);
ist das Ergebnis bei echo $id folgendes:
[COLOR="Red"]12345[/COLOR]1
Wo kommt die "1" hinten dran her? Wie werde ich sie los?
2. Das Suchmuster müsste noch erweitert werden, weil die zu durchsuchenden URLs entweder eine Seitenzahl enthalten oder nicht! D. h. bei einem exemplarischen URL
$url = "http://www.domain.de/verzeichnis1/dies-ist-eine-test-URL-[COLOR="Red"]12345[/COLOR].html";
sollte die [COLOR="Red"]ID[/COLOR] ausgegeben werden und "0" für [COLOR="Green"]Seite[/COLOR].
Wie müsste sich also der preg_replace Befehl ändern, damit beide Arten von URLs erkannt und die [COLOR="Red"]ID[/COLOR] bzw. [COLOR="Green"]Seite[/COLOR] ausgelesen werden?
ID und Seite können jeweils nur Zahlen sein.
Vielen Dank und beste Grüße,
Chriss
Comment