levu: RegExp für example.html?a=b&c=d => example.html?a=b&c=d

Hallo,

Wie der Titel schon sagt will ich in einem Query-String alle & in & umwandeln. Spricht etwas gegen die Methode, erst alle & in & per replace umzuwandeln und dann alle & in &? Ich würde das gerne mithilfe von einem regulären Ausdruck lösen, der mir alle diese URLs rausfiltert. Wie muss ich da ansetzten, damit der mir a) das nur in URLs findet b) nur & und nicht & findet (und auch keine anderen entitäten)?

Eine andere Frage: gibt es in PHP oder JS eine Methode und aus den Entitäten wieder den Text zu machen?

mfg, Flo

--
sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
  1. Hi,

    Eine andere Frage: gibt es in PHP oder JS eine Methode und aus den Entitäten wieder den Text zu machen?

    PHP: html_entity_decode

    MfG ChrisB

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

      Hi,

      Eine andere Frage: gibt es in PHP oder JS eine Methode und aus den Entitäten wieder den Text zu machen?

      PHP: html_entity_decode

      Danke! Gibts sowas auch für JS oder soll ich sowas per XMLHttpRequest lösen?

      mfg, Flo

      --
      sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
      1. Hi,

        PHP: html_entity_decode
        Danke! Gibts sowas auch für JS

        Text als HTML irgendwo reinschreiben, dann interpretiert's der Browser automatisch.

        oder soll ich sowas per XMLHttpRequest lösen?

        Wir wissen noch gar nicht, was du eigentlich "loesen" moechtest.

        MfG ChrisB

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

          Ich hab' a=b&amp;c=d (z.B.) und will das dann in a=b&c=d umwandeln bzw. will es andersherum lösen, weil ich mit diesen beiden Versionen manchmal konflikte mit JS und PHP hab'. Wird &amp; in einem Script-Tag eigentlich geparst? Nein, oder? mir bereiten diese beiden varianten nicht nur wegen diesem Tool :) im Moment kopfzerbrechen, weil ich meine Seite standartkonform haben will, aber manche Skripte eben a=b&c=d aus dem href-Attribut von nem Link extrahieren möchten. Und außerdem schreibt TinyMCE auch nicht a=b&amp;c=d sondern a=b&c=d, weshalb ich alle solchen URLs per PHP mit nem regulären Ausdruck umwandeln möchte, damit sie dann beim browser als a=b&amp;c=d ankommen, was zwar standardkonform ist, aber mein JS durcheinanderbringt.

          Eine andere Frage: Was passiert hier?

            
          <a href="http://example.org/" onclick="alert('a');" onclick="alert('b');">title</a>  
          
          

          Hier wird doch b ausgegeben, oder? wie kann man a ausgeben lassen. Der Hintergrundgedanke ist folgender:
          Ich möchte alle target="_blank" in onclick="window.open(blablabla); return false;" umwandeln und habe Probleme, falls das a-Tag später noch mal ein onclick definiert.

          mfg, Flo

          --
          sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
          1. Hallo,

            Ich hab' a=b&amp;c=d (z.B.) und will das dann in a=b&c=d umwandeln bzw. will es andersherum lösen, weil ich mit diesen beiden Versionen manchmal konflikte mit JS und PHP hab'. Wird &amp; in einem Script-Tag eigentlich geparst? Nein, oder? mir bereiten diese beiden varianten nicht nur wegen diesem Tool :) im Moment kopfzerbrechen, weil ich meine Seite standartkonform haben will, aber manche Skripte eben a=b&c=d aus dem href-Attribut von nem Link extrahieren möchten. Und außerdem schreibt TinyMCE auch nicht a=b&amp;c=d sondern a=b&c=d, weshalb ich alle solchen URLs per PHP mit nem regulären Ausdruck umwandeln möchte, damit sie dann beim browser als a=b&amp;c=d ankommen, was zwar standardkonform ist, aber mein JS durcheinanderbringt.

            Du kannst duir die Probleme sparen, idem du gar nicht erst & verwendest.

            path?par1=value;par2=value;par3=value

            ist eine empfohlene Alternative.

            mfg Beat

            --
            Woran ich arbeite:
            X-Torah
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            1. Hallo,

              path?par1=value;par2=value;par3=value

              ist eine empfohlene Alternative.

              Wie bringt man einen Browser dazu, sowas als Ergebnis von nem ner Form zu senden (blöd ausgedrückt ;)

              mfg, Flo

              --
              sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
              1. path?par1=value;par2=value;par3=value

                ist eine empfohlene Alternative.
                Wie bringt man einen Browser dazu, sowas als Ergebnis von nem ner Form zu senden (blöd ausgedrückt ;)

                Leider gar nicht.
                Und daran haben die Strategen der HTML Standards auch eine Schuld.

                Aber du kannst mindestens Query-Strings so vereinfacht handhaben.
                Deine Serversoftwar musst du dann so konfigurieren, dass sie beide Zeichen & und ; als Datensatz-Trennzeichen akzeptiert.

                mfg Beat

                --
                Woran ich arbeite:
                X-Torah
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                1. Hallo,

                  Deine Serversoftwar musst du dann so konfigurieren, dass sie beide Zeichen & und ; als Datensatz-Trennzeichen akzeptiert.

                  Da ist also der Haken :). Klar, ach da bleibe ich bei dem mit & und schreib mir ne funktion, die mir auf JS-Ebene da was daraus macht. Aber zum Ursprünglichen Problem: Wie erkenne ich ob das & zu einer Entität gehört und nicht umgewandelt werden soll, weil ich einen kleinen HTML-Preprocessor für mein CMS schreiben möchte, der so sachen macht wie z.B. <BR> in <br /> umwandelt oder so.

                  mfg, Flo

                  --
                  sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                  1. Deine Serversoftwar musst du dann so konfigurieren, dass sie beide Zeichen & und ; als Datensatz-Trennzeichen akzeptiert.
                    Da ist also der Haken :). Klar, ach da bleibe ich bei dem mit & und schreib mir ne funktion, die mir auf JS-Ebene da was daraus macht. Aber zum Ursprünglichen Problem: Wie erkenne ich ob das & zu einer Entität gehört und nicht umgewandelt werden soll, weil ich einen kleinen HTML-Preprocessor für mein CMS schreiben möchte, der so sachen macht wie z.B. <BR> in <br /> umwandelt oder so.

                    Die Antwort lautet:
                    Indem keine Entities verwendest.

                    Also zuerst html_entity_decode() anwenden.
                    Danach (Perl typisch) s/&/&amp;/g

                    mfg Beat

                    --
                    Woran ich arbeite:
                    X-Torah
                    ><o(((°>           ><o(((°>
                       <°)))o><                     ><o(((°>o
                    1. Hallo,

                      Die Antwort lautet:
                      Indem keine Entities verwendest.

                      Das macht TinyMCE ja automatisch (der mir in einem Thread vor 1-2 wochen so heiß empfohlen wurde) und _das_ ist das Problem. Und in einem CMS bin nich nur ich dafür verantwortlich, was gemacht wird, sondern jeder, der sich das bei sich installiert. und trotzdem soll mein CMS immer standardkonformen Code produzieren.

                      Danach (Perl typisch) s/&/&amp;/g

                      hmm, das ist ja noch einfach, aber ich muss mal n bissel rumexperimentieren, wie ich das mit dem in den URLs mache

                      mfg, Flo

                      --
                      sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|