Ergebnis 1 bis 4 von 4

Thema: eregi_replace ; :: richtig Escapen -.-'

  1. #1

    eregi_replace ; :: richtig Escapen -.-'

    Hallo ,

    Ich habe ein Problem in einem Kleinen Script udnzwar weiss ich nicht wie ich die :: Richtig Escape -.-'

    Hier ien beispiel code :

    PHP-Code:
    $Y "Test::[X]::" ;
    $Y eregi_replace ("::[X]::""A"$Y) ;
    echo 
    $Y 
    Das ergebniss währe "Test::[X]::"

    bei

    PHP-Code:
    $Y "Test::[X]::" ;
    $Y eregi_replace ("X""A"$Y) ;
    echo 
    $Y 
    währe das Ergebniss "Test::[A]::"

    Also liegt es woll an den :: nur wie Escape ich sie ? Wie beim . klappt es nett mit "\./"
    wie escapt man die ":" ?

    Mfg Dadie

  2. #2
    Zitat Zitat von dadie
    Also liegt es woll an den :: nur wie Escape ich sie ? Wie beim . klappt es nett mit "\./"
    wie escapt man die ":" ?

    Mfg Dadie
    Genauso wie man alles andere auch escapt, indem man einen Backslash davorsetzt: "\:"
    Wo du "\./" her hast ist mir schleierhaft; das ist Unsinn.

    Dein Fehler ist, daß du die eckigen Klammern nicht escapts. Folgender Code funktioniert wunderbar:
    PHP-Code:
    $Y "Test::[X]::";
    $Y eregi_replace ("\:\:\[X\]\:\:""A"$Y);
    echo 
    $Y

  3. #3
    big thx dachte die [] muss ich nicht escapen aber eine sache kann ich mir nicht erklähren :

    wenn cih folgenden code habe

    PHP-Code:
     $Y "Test::[X]::TEST::[X]::";
    $Y eregi_replace ("\:\:\[(.*)\]\:\:""A"$Y);
    echo 
    $Y
    Gibt er "TestA" aus weil er diese klamme siht Test::[X]::TEST::[X]::

    kann man php helfen zu unterscheiden bzw. schritt für schritt zu arbeiten ?

  4. #4
    Ich arbeite immer mit den preg*-Funktionen; die sind nur wenig langsamer als ereg* und bieten komplette Perl-kompatible Regexps. Das Beispiel mit PCRE:
    PHP-Code:
    // Ein Match, dem ein ? folgt, ist faul - er matcht so wenig Text wie möglich
    $Y "Test::[X]::TEST::[X]::";
    $Y preg_replace ("/\:\:\[(.*?)\]\:\:/i""A"$Y);
    echo 
    $Y;

    // Alternative: Der Modifikator U macht alle Matches faul
    $Y "Test::[X]::TEST::[X]::";
    $Y preg_replace ("/\:\:\[(.*)\]\:\:/iU""A"$Y);
    echo 
    $Y

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •