kostenloser Webspace werbefrei: lima-city


preg_replace Ausgabe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nowayout

    nowayout hat kostenlosen Webspace.

    Hi,
    ich spiele mich gerade mit der oben genannten Funktion und habe ein kleines Problem:
    Wenn ich es durchlaufen lasse, dann kommt immer zweimal es klappt!
    Wieso ist das so?

    Ich habe folgendes Script:

    $url = "http://www.lima-city.de";
    $ersetzen = "es klappt!";
    $suche = "^(.*)^";
    echo preg_replace($suche,$ersetzen,$url);


    Link: http://nowayout.milten.lima-city.de/PHP/preg_replace.php

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hiho nowayout!

    Wenn du Ausdr?cke klammerst, dann musst du dem Ersetzen-String mitteilen, welcher geklammerte Ausdruck ersetzt werden soll. Das macht man mit "$1" f?r den Ausdruck in der ersten Klammer:


    $suche = '^(.*)^';
    $ersetzen = 'So klappt es: $1';
    $url = 'http://www.lima-city.de';
    echo preg_replace($suche,$ersetzen,$url);

    http://de.php.net/manual/de/function.preg-replace.php

    MfG
    alopex
  4. Autor dieses Themas

    nowayout

    nowayout hat kostenlosen Webspace.

    Hi Alopex,
    leider hat deine Antwort mein Problem nicht behoben :(
    Ich hab mal deine L?sung in meine Datei reinkopiert, nun funzt zwar die Sache mit $1, aber das "So klappt es:" wird immer noch hintendrangeh?ngt.
  5. r*****r

    es wird doch nach den punkten gesucht, oder?

    wenn ja, versuchs mal wenn du den zweiten punkt l?schst.
  6. Autor dieses Themas

    nowayout

    nowayout hat kostenlosen Webspace.

    Punkt hei?t bei regul?ren Ausdr?cken beliebiges Zeichen.

    Siehe da: http://www.drweb.de/php/regulaere-ausdruecke.shtml

    und der Stern steht f?r mehrfaches Vorkommen.
    Hab mal einen Punkt gel?scht, hat aber nichts gebracht.
    Um nach einem Punkt zu suchen m?sste man ihn escapen, also so schreiben: \.
  7. Hallo nowayout!

    Du hast recht, es ist etwas komplizierter. Ich versuchs mal, zu erkl?ren:

    Regul?re Ausdr?cke sind "gierig", d.h. sie versuchen den zum Suchmuster passenden String zu finden, der so lang wie m?glich ist. Mit einem Suchmuster "/(.*)/" (ein String der L?nge Null bis maximale L?nge mit beliebigen Zeichen) passiert daher Folgendes:

    1. Es wird ein passender String gefunden, n?mlich der gesamte zu durchsuchende String $url.

    2. Es wird ein weiterer passender String gefunden, n?mlich der Leerstring vom Ende von $url bis zum Ende von $url.

    Beide gefundenen Strings werden ersetzt. Daher kommt das Ersetzungsergebnis zweimal zu Stande. Ich habe mal den Ersetzen-String etwas abge?ndert, damit man sieht, das tats?chlich ein Leerstring ausgegeben wird ('So klappt es:($1)'). Das kommt raus:

    So klappt es:(http://www.lima-city.de)So klappt es:()

    Wenn du die Gier von RegExp's verhindern willst, musst du Modifikatoren setzen, die das verhindern. Ein Beispiel ist das Fragezeichen '?'. Du kannst aber auch die Suche mit den String-Anfangs- und String-Ende-Zeichen '\A' und '\Z' begrenzen.

    Was soll dein regul?rer Ausdruck eigentlich erreichen? Das ist mir n?mlich bisher noch nicht ganz klar. Beschreib mal, was er tun soll, dann kann man besser helfen.

    MfG
    alopex
  8. Autor dieses Themas

    nowayout

    nowayout hat kostenlosen Webspace.

    Hi Alopex,
    ich will mit dem "einfachen" Ausdruck mal das ganze RegExp Zeug kennen lernen, da ich es f?r ein Projekt brauche. So dachte ich halt, fang ich mit was einfachem an.


    2. Es wird ein weiterer passender String gefunden, n?mlich der Leerstring vom Ende von $url bis zum Ende von $url.

    Das versteh ich nicht!
    Vom Ende bis zum Ende ist meiner Meinung nach einfach nichts. Begrenzen will ich das nicht, da einfach alles was drinsteht in der Variable ?berschrieben werden soll. Da ich in diesem Fall nicht wei?, welche URL drin steht kann ich auch keine Begrenzungen machen. Ich habe mal [:graph:] versucht, aber es hat irgendwie auch nicht geklappt. :(

    LG
    nwo
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!