Mike: Suchen Ersetzen von Strings mit Anführungszeichen

Hallo zusammen

Ich versuche verzweifelt, Code aus einer Seite mit anderem zu ersetzen. Dazu probiere ich testweise folgendes:

if(ereg('<p style="text-align: left;">bild1</p>',$def_text)) { echo 'funktioniert'; }

Habe natürlich auch die Variante mit escapen probiert:

if(ereg("<p style=\"text-align: left;\">bild1</p>",$def_text)) { echo 'funktioniert'; }

Beiders liefert mir kein Ergebnis zurück. <p style="text-align: left;">bild1</p> kommt aber 100% vor, habe es soeben aus dem Quelltext der Seite kopiert...

Habe auch schon ereg_replace und str_replace erfolglos eingesetzt, daher die Testerei.

Der Teufel steckt wohl im Detail?

Danke für Hinweise und Grüsse
Mike

  1. Hi,

    Ich versuche verzweifelt, Code aus einer Seite mit anderem zu ersetzen. Dazu probiere ich testweise folgendes:

    if(ereg('<p style="text-align: left;">bild1</p>',$def_text)) { echo 'funktioniert'; }

    Habe natürlich auch die Variante mit escapen probiert:

    if(ereg("<p style=\"text-align: left;\">bild1</p>",$def_text)) { echo 'funktioniert'; }

    Wenn du regulaere Ausdruecke benutzt, dann solltest du die preg-Funktionen statt der ereg-Funktionen nehmen.

    Und wenn du keine Mustersuche brauchst, sondern nur einen festen Textteil ersetzen willst - dann solltest du ueberhaupt keine regulaeren Ausdruecke nutzen.

    Habe auch schon ereg_replace und str_replace erfolglos eingesetzt, daher die Testerei.

    str_replace waere eindeutig das Mittel der wahl.

    Beiders liefert mir kein Ergebnis zurück. <p style="text-align: left;">bild1</p> kommt aber 100% vor, habe es soeben aus dem Quelltext der Seite kopiert...

    Dann verifiziere, dass der "Quelltext der Seite" auch 100% mit dem Text uebereinstimmt, in dem du die Suche vornehmen willst.

    Der Teufel steckt wohl im Detail?

    Ja, und zwar an irgendeiner Stelle, ueber die du uns bisher noch keine hinreichenden Informationen geliefert hast.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. str_replace waere eindeutig das Mittel der wahl.

      OK, hab ich schon probiert und jetzt wieder eingesetzt.

      Dann verifiziere, dass der "Quelltext der Seite" auch 100% mit dem Text uebereinstimmt, in dem du die Suche vornehmen willst.

      So siehts jetzt aus:

      Ausschnitt aus dem Quelltext

      <h1>In Bearbeitung</h1>  
      <br>  
      <p style="text-align: left;">bild1</p>  
      <p style="text-align: left;">bild2</p>  
      <br>
      

      und im Skript:

      $def_text=str_replace('<p style="text-align: left;">bild1</p>','',$def_text);

      Ergebnis: Die Zeile ist immer noch da und wird nicht erkannt/entfernt. Ich versteh's nicht...

      MfG ChrisB

      Gruss und vielen DANK!

      1. Hi,

        Ausschnitt aus dem Quelltext

        <h1>In Bearbeitung</h1>

        <br>
        <p style="text-align: left;">bild1</p>
        <p style="text-align: left;">bild2</p>
        <br>

        
        >   
        > und im Skript:  
        >   
        > `$def_text=str_replace('<p style="text-align: left;">bild1</p>','',$def_text);`{:.language-php}  
        >   
        > Ergebnis: Die Zeile ist immer noch da und wird nicht erkannt/entfernt. Ich versteh's nicht...  
          
        Habe deinen Code per Copy&Paste ausprobiert, Ergebnis: <p style="text-align: left;">bild1</p> ist verschwunden.  
          
        Also kontrolliere \*noch\* \*mal\* deine Eingabedaten [1]. Wenn der Scriptablauf drumherum keinen Fehler enthaelt, dann enthalten sie definitiv nicht das, was du hier weissmachen willst.  
          
          
        [1] Kontrolliere sie in der Form, in der sie im Script vorliegen - und nicht so, wie sie eventuell in irgendwelchen externen Dateien oder sonstwo vorliegen, und wo von du deshalb annimmst, sie muessten dies im Script in der gleichen Weise tun.  
          
        MfG ChrisB  
          
        
        -- 
        „This is the author's opinion, not necessarily that of Starbucks.“
        
        1. Au Backe!! Danke für Deine Hilfe, das hat mich auf eine Idee gebracht. Einfach mal in der db schauen und nicht im ausgegebenen Quelltext, da sind die " natürlich mit \ escaped. Habe nun getestet mit \ und siehe... die Zeile ist weg.

          Ich *...* ;-)

          Danke und Tschüss!

          1. echo $begrüßung;

            Einfach mal in der db schauen und nicht im ausgegebenen Quelltext, da sind die " natürlich mit \ escaped. Habe nun getestet mit \ und siehe... die Zeile ist weg.

            Das ist überhaupt nicht natürlich sondern falsch. Es sein denn, dein HTML-Code befindet sich in einem Stringkontext. Anzunehmenderweise hast du eine Mischung aus Magic Quotes und selbst maskierten Werten beim Einfügen in die Tabelle. Ein Indiz darauf ist, wenn du beim Auslesen aus dem DBMS stripslashes() anwenden musst, bevor du es ordentlich ausgeben kannst.

            echo "$verabschiedung $name";

            1. Das ist überhaupt nicht natürlich sondern falsch. Es sein denn, dein HTML-Code befindet sich in einem Stringkontext. Anzunehmenderweise hast du eine Mischung aus Magic Quotes und selbst maskierten Werten beim Einfügen in die Tabelle. Ein Indiz darauf ist, wenn du beim Auslesen aus dem DBMS stripslashes() anwenden musst, bevor du es ordentlich ausgeben kannst.

              echo "$verabschiedung $name";

              Wieso "natuerlich"? Das ist ein Fehler, der behoben werden moechte.

              MfG ChrisB

              Danke Euch beiden, ist mit Sicherheit ein Schönheitsfehler. Arbeite aber nur mit Text-Datenbanken und habe mich an das stripcslashes gewöhnt ;-)

              Habt Dank für Eure Hinweise!

              Grüsse
              Mike

          2. Hi,

            Einfach mal in der db schauen und nicht im ausgegebenen Quelltext, da sind die " natürlich mit \ escaped.

            Wieso "natuerlich"? Das ist ein Fehler, der behoben werden moechte.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“