Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Probleme mit regulärem Ausdruck (https://www.delphipraxis.net/69376-%5Bphp%5D-probleme-mit-regulaerem-ausdruck.html)

Matze 14. Mai 2006 15:44


[PHP] Probleme mit regulärem Ausdruck
 
Hallo zusammen,

ich habe folgenden regulären Ausdruck, der mir aus URLs wie http://www.foo.de/index.php?page=news&lang=de solche erzeugt http://www.foo.de/de/news.html, besser gesagt, erzeugen soll. :roll: Ich erhalte immer 2 Mal hintereinander den vituellen Ordner "de": http://www.foo.de/de/de/news.html.

Code:
$url_in = array(
    "'(?<!/)index.php\?page=([a-z]*?)&(?:amp;)?lang=([a-z]+)'"
);

$url_out = array(
    '\\2/\\1.html'
);

return preg_replace($url_in, $url_out, $code);
Sieht jemand von euch den Fehler?


Edit: Im Titel "regülärem" korrigiert. ^^

Edit: Thorben wollte unbedingt ein "[PHP]" im Titel. ;)

cruiser 14. Mai 2006 16:24

Re: Probleme mit regulärem Ausdruck
 
Ist nur ne Kleinigkeit. Ich hab da mal was vorbereitet ;) : siehe hier

Thorben77 14. Mai 2006 18:11

Re: Probleme mit regulärem Ausdruck
 
Setz doch noch ein "PHP" in den Titel, dann erkennt man auch gleich, worum's hier geht :wink: .

Matze 14. Mai 2006 20:01

Re: [PHP] Probleme mit regulärem Ausdruck
 
Moin

@cruiser: Vielen Dank, es lag lediglich an einem Slash, der fehlte. Ohje, da hätte ich den Fehler zuletzt gesucht. Nun geht's. :)

Falls der Link mal nicht mehr existieren sollte, für die anderen, so muss es lauten:

Code:
$url_out = array(
    '/\\2/\\1.html'
);

Edit: Hm, geht doch nicht so ganz. ;) Wenn ich's komplett so mache, wie in deinem Demo-Skript:

Code:
$url_in = array(
    "'/index\.php\?page=([a-z]*?)&(?:amp;)?lang=([a-z]+)'"
);

$url_out = array(
    '/\\2/\\1.html'
);
Dann erhalte ich diese URLs: http://.../pfad/index.php?page=news&ang=de, lasse ich den Slash vor "index" weg, sieht es so aus: http://.../de/news.html. Also da stimmt dann der Pfad nicht ganz (Die Seite befindet sich in http://.../pfad/). :gruebel:

cruiser 14. Mai 2006 20:23

Re: [PHP] Probleme mit regulärem Ausdruck
 
Dann musst du das komplette http mit reinnehmen... und parsen..

habs mal angepasst: click me

Matze 14. Mai 2006 21:03

Re: [PHP] Probleme mit regulärem Ausdruck
 
Hi

Sehr komisch, online funktioniert dein Skript bei mir wunderbar, lokal überhaupt nicht. Also online scheint das zu kpappen, aber ich möchte das ja nicht immer online testen müssen. Und an Win kann es eigentlich ja auch nicht liegen. Lokal habe ich php5, online 4, aber das dürfte ja auch nichts ausmachen. :gruebel:

Edit: Ich hatte nur relative Pfade angegeben. :wall: Es geht alles, herzlichen Dank. :thumb:

Für die anderen:


Code:
$url_in = array(
    "'([url]http://.*?/[/url])index\.php\?page=([a-z]*?)&(?:amp;)?lang=([a-z]+)'"
);

$url_out = array(
    '\\1\\3/\\2.html'
);

cruiser 14. Mai 2006 21:16

Re: [PHP] Probleme mit regulärem Ausdruck
 
Aber windoof + PHP in Kombination kann einige Macken produzieren... würde mich NICH wundern, wenn da was hakt ;)

Matze 14. Mai 2006 21:17

Re: [PHP] Probleme mit regulärem Ausdruck
 
Zitat:

Zitat von cruiser
Aber windoof + PHP in Kombination kann einige Macken produzieren... würde mich NICH wundern, wenn da was hakt ;)

Nein, sonst funktioniert alles bestens, danke nochmals.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz