Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 24-01-2018, 16:03
Chriss
 Registrierter Benutzer
Links : Onlinestatus : Chriss ist offline
Registriert seit: Oct 2001
Beiträge: 89
Chriss ist zur Zeit noch ein unbeschriebenes Blatt
Standard Regulärer Ausdruck - Hilfe!

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 ID und Seite auslesen:

$url = "http://www.domain.de/verzeichnis1/dies-ist-eine-test-URL-12345-34.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: 12345 : 34


Nun zu meinen Fragen:

1.) Wenn ich nur die ID 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:

123451

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-12345.html";

sollte die ID ausgegeben werden und "0" für Seite.

Wie müsste sich also der preg_replace Befehl ändern, damit beide Arten von URLs erkannt und die ID bzw. Seite ausgelesen werden?

ID und Seite können jeweils nur Zahlen sein.

Vielen Dank und beste Grüße,
Chriss

Geändert von Chriss (24-01-2018 um 16:18 Uhr)
Mit Zitat antworten