eregi, warum funktionierts so nicht?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • eregi, warum funktionierts so nicht?

    Ich habe ein Problem mit eregi, ich möchte schauen, ob ein bestimmter Dateiname in einem String vorkommt, aber trotz totaler übereinstimmung findet eregi die Übereinstimmung nicht:
    PHP Code:
    if ($arrayalsstringB=="<IMG alt=\\\"\\\" hspace=0 src=\\\"C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\" align=baseline border=0>")
    {echo 
    "gleich ";}
    if (
    eregi("<IMG alt=\\\"\\\" hspace=0 src=\\\"C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\" align=baseline border=0>"$arrayalsstringB))
    {echo 
    "kommt vor";}
    else{echo 
    "kommt nicht vor";} 
    liefert:

    gleich kommt nicht vor

    also es wird erkannt, dass es sich um den selben String handelt, aber nicht, dass er vorkommt.
    Ziel ist eigentlich, dass

    PHP Code:
    i$arrayalsstringB="<IMG alt=\\\"\\\" hspace=0 src=\\\"C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\" align=baseline border=0>";
    $dateinameB="C:\\\\Inetpub\\\\wwwroot\\\\warning.gif";
    if (
    eregi("$dateinameB"$arrayalsstringB))
    {echo 
    "kommt vor";}
    else{echo 
    "kommt nicht vor";} 
    kommt vor als Ausgabe hat.

    Ich vermute das Problem wegen der \\\\ und \\", weiß aber nicht wie ich es lösen könnte, aber vielleicht kann mir hier ja jemand helfen?

  • #2
    Schau Dir mal die Tüttelchen an und die unterschiedliche Einfärbung der Strings in Deinem Beitrag.

    Comment


    • #3
      Intressant, der (1.) Quelltext sieht eigentlich so aus:

      if ($arrayalsstringB=="<IMG alt=\\\"\\\" hspace=0 src=\\\"C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\" align=baseline border=0>")
      {echo "gleich ";}
      if (eregi("<IMG alt=\\\"\\\" hspace=0 src=\\\"C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\" align=baseline border=0>", $arrayalsstringB))
      {echo "kommt vor";}
      else{echo "kommt nicht vor";}

      Und im Zendstudio sind die Strings auch alle gleichmäßig gefärbt.
      Aber jetzt erkenne ich das Problem, allerdings noch nicht so ganz die Lösung, aber ich arbeite dran, wenn es allerdings jemand schon weiß, bin ich auch dankbar, wenn er es hier schreibt.

      Mein ANsatz wäre jetzt gewesen:

      PHP Code:
      $arrayalsstringB="<IMG alt=\\\'\\\' hspace=0 src=\\\'C:\\\\Inetpub\\\\wwwroot\\\\warning.gif\\\' align=baseline border=0>";
      $dateinameB='C:\\\\Inetpub\\\\wwwroot\\\\warning.gif';
      if (
      eregi($dateinameB$arrayalsstringB))
      {echo 
      "kommt vor";}
      else{echo 
      "kommt nicht vor";} 
      Aber so tuts auch nicht, obwohl es besser aussieht...
      Last edited by bajana; 10-02-2006, 10:03.

      Comment


      • #4
        Warum benutzt du nicht einfach strpos?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          Weil ich später dann den Dateipfad durch einen anderen Dateipfad ersetzen möchte mit ereg_replace, also im gesamten gesagt:

          Ich habe einen wysiwyg-Editor programmiert, nun soll man auch Bilder einfügen können. Ich filtere über ereg_replace den Dateinamen aus dem IMG-Tag raus und lade das Bild hoch, das funktioniert. Dann möchte ich im IMG-Tag den alten Dateinamen durch den neuen ersetzen.

          Irgendwie umständlich, ich weiß, aber ein besserer Weg ist mir nicht eingefallen.

          Comment


          • #6
            str_replace?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Comment


            • #7
              Danke! Hätte nicht gedacht, dass das einen unterschied macht, mir ist der Unterschied zwischen ereg_replace und str_replace scheinbar noch nicht ganz klar.

              Comment

              Working...
              X