\ - Zeichen entfernen !

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • \ - Zeichen entfernen !

    Hallo !

    Auf einer Seite habe ich eine dynamisches SQL - Statement generiert und lasse dies als Tabelle anzeigen.

    Ich möchte nun dem Benutzer die Möglichkeit geben, diese Tabelle als csv - Datei herunterzuladen. Dazu gibt´s einen Submit - Button, der eine neue Seite aufruft und sofort den Donwload anbietet.

    Ich übergebe also per hidden file mein $sql statement und erhalte als Ergebnis auf der nächsten Seite :

    select bla, blub, bloe from tabelle where userid = \'10\' !!!

    Wie bekomme ich PHP dazu, den String so zu formatieren, daß hinten steht:

    userid = 10 ? ( ohne das Fragezeichen 8-)) natürlich ...)

    Weder stripslashes noch str_replace funktioniert ...

    Gruß

    Stefan

  • #2
    hallo,

    wie sieht denn deine "str_replace" aufruf aus, poste mal den code

    wurzel
    Kissolino.com

    Kommentar


    • #3
      so sollte es gehen. wenn nicht, poste doch mal, wie schon Wurzel gesagt hat, dein str_replace.

      PHP-Code:
      $sqlausgabe str_replace ("\\\\'""'"$sqlausgabe); 
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Ja Klar ... ich würde 'ne Funktion schreiben die das macht ... z.B:

        PHP-Code:
        function slashesEntfernen($data) {
            
        $result="";
            for ( 
        $idx=0$idx<strlen($data); $idx++ ) {
                if ( 
        $data[$idx]!="\\\\" $result.=$data[$idx];
            }
            return 
        $result;


        Oder du verwendest einfach die Funktion string stripslashes(string str) ... soll manchmal helfen ins Handbuch zu schauen ... !
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Meine Versuche sehen so aus :

          $sql = ereg_replace("\'","'",$sql);
          $sql = str_replace("\'","'",$sql);
          $sql = stripslashes($sql);

          Es scheint, als ob PHP das Zeichen nicht im String findet.

          Habe auch gerade die Funktion von goth getestet :

          Funktioniert nicht. Ich glaube, daß der Webserver/PHP etwas zurückschickt was zwar wie \'10\' aussieht, aber kein \'10\' ist ...
          Gruß

          Stefan

          Kommentar


          • #6
            Hallo !

            Ruder zurück, ächz...

            Funktion funktioniert !

            Vielen Dank

            Stefan

            Kommentar


            • #7
              Also vom Prinzip her sollte es stripslashes() aber tun ... das mit meiner Funktion war nicht wirklich ernst gemeint ...
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                das probelm lag hier wohl bei "\" das interpretiert PHP nicht als zeichen.. da muss schon "\\" hin...
                meine Projekte bestaunen: http://www.kleiza.de

                Kommentar


                • #9
                  das probelm lag hier wohl bei "\" das interpretiert PHP nicht als zeichen.. da muss schon "\\" hin...
                  ist immer so.

                  wenn man ein metazeichen (=zeichen mit spezieller bedeutung, wie z.b. eben auch "\")in einem string verwenden will, dann muss man es escapen, damit es seine spezielle bedeutung verliert und als "normales" zeichen gilt.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Hallo !

                    Lösung der ganzen Geschichte ist :

                    Ich habe zur Kontrolle phpinfo(); nach der (einer beliebigen )$sql - Bearbeitung (Funktion, ereg_replace, stripeslashes, etc... ) eingefügt. Als Ergebnis kommt IMMER \'10\' heraus !

                    Mache ich statt phpinfo() das Ganze mit echo $sql erhalte ich,
                    was wirklich im Statement drin steht.

                    So war ich wohl davon ausgegangen, das stripslashes($sql) nicht funktionieren tun würde ...

                    Gruß

                    Stefan

                    Kommentar

                    Lädt...
                    X