Anzeige

Reguläre Ausdrücke! Hilfe!

Reguläre Ausdrücke! Hilfe! | PSD-Tutorials.de

Erstellt von sallyssecret, 14.08.2008.

  1. sallyssecret

    sallyssecret Unkonventioneller

    Dabei seit:
    05.02.2006
    Beiträge:
    87
    Geschlecht:
    männlich
    Ort:
    Büren
    Software:
    Photoshop, InDesign, Freehand, Illustrator, Flash, QuarkExpress
    Kameratyp:
    Canon EOS 400D
    Reguläre Ausdrücke! Hilfe!
    Hallo Leute!

    Hab mal wieder ne Frage. Diesmal zu preg_replace() bzw. zu den regulären Ausdrücken.

    Und zwar will ich einen Text aus einer Textarea in eine Datenbank speichern. Bevor dies geschieht soll aber der Text durchsucht werden und alle Stellen, wo href="../image/ steht durch href="image ersetzt werden.

    Hab bis jetzt folgendes:

    --

    $text = 'aslgkjas sajas <a href="../image/dump.jpg">asdjkgkasjdg';

    $suchpattern = '#href="../image#';

    $ersatz = 'href="image';

    $neuerText = preg_replace($suchpattern, $ersatz, $text);

    --

    Wie baue ich den Suchpattern richtig, damit das funktioniert?
    Bin sehr dankbar über jede Hilfe!!!
     
    #1      
  2. Weichzeichner

    Weichzeichner Alles muss funktionieren.

    221
    Dabei seit:
    28.06.2007
    Beiträge:
    2.166
    Geschlecht:
    männlich
    Ort:
    Hannover
    Software:
    Stift & Papier.
    Kameratyp:
    Auge.
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Auch wenn ich nicht viel Ahnung vom Webcoding habe, ich glaube bei den markierten Stellen läuft was Falsch.

    Ich hab aber nur wenig Ahnung, das könnetn wohl nur unsere erfahreren Webbies beantworten.
     
    #2      
  3. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Wenn schon $suchpattern = '#href="../image#';
    dann: $suchpattern = '#href="\.\./image#';
    Darauf achten wenn Punkte zu einen String gehören!
     
    #3      
  4. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Wenn Du nicht genau weißt, welche Zeichen zu den sog. Metazeichen gehören, (wie schon am Beispiel #../href="image gut erkannt, dann benutze wenn Du GENAU DEN String suchst, (wie Du es da ja tust), die Funktion quotemeta();

    Die Funktion quotemeta versieht alle Zeichen mit einem Backslash, die in einem regulären Ausdruck als Variationen dienen. dazu gehören:
    Code (Text):
    1. . \ + * ? [ ^ ] ( $ )
    einfaches Beispiel:

    Du suchst image.php?action=fart in diesem String: <a href="image.php?action=fart"> plop </a>

    Dann wäre nach deinem Beispiel der reguläre Ausdruck
    Code (Text):
    1. preg_replace('#image.php?action=fart#si','pups.php', $string);
    DAS IST ABER FALSCH, HA! :p
    Denn die Zeichen
    Code (Text):
    1. . ?
    sind teil der Metaausdrücke des Regex. richtig ist es hier in dem Fall:
    Code (Text):
    1. preg_replace("#".quotemeta("image.php?action=fart")."#si", 'pups.php', $string);
    Hinweis, Quelle: PHP: quotemeta - Manual

    LG
    Christian
     
    #4      
  5. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Was spricht gegen str_replace?
     
    #5      
  6. kirchrath

    kirchrath Noch nicht viel geschrieben

    Dabei seit:
    04.05.2008
    Beiträge:
    39
    Geschlecht:
    männlich
    Software:
    DW/PS CS3
    Kameratyp:
    Canon EOS 400D
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Meines Wissens nichts. Wär sogar angebrachter - da das da oben keinen regulären Ausdruck benötigt.
     
    #6      
  7. sallyssecret

    sallyssecret Unkonventioneller

    Dabei seit:
    05.02.2006
    Beiträge:
    87
    Geschlecht:
    männlich
    Ort:
    Büren
    Software:
    Photoshop, InDesign, Freehand, Illustrator, Flash, QuarkExpress
    Kameratyp:
    Canon EOS 400D
    Reguläre Ausdrücke! Hilfe!
    AW: Reguläre Ausdrücke! Hilfe!

    Allerbesten Dank an Peter_Unlustig und natürlich auch an alle anderen.
    Hab noch nie mit regulären Ausdrücken gearbeitet, darum hat mich dass alles ziemlich verwirrt, was ich darüber gelesen hab.
    Aber mit quotemeta gehts es prima und macht die Sache auch viel einfacher.

    Da hab ich überhaupt nicht dran gedacht, das die Punkte ja auch zu den Metazeichen gehören.

    DANKE SCHÖN
     
    #7      
x
×
×
teststefan