Ankündigung

Einklappen
Keine Ankündigung bisher.

eibPC Codierung bei Stringoperationen

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

    eibPC Codierung bei Stringoperationen

    Hallo zusammen,

    ich bin gerade dabei etwas mehr Infos aus meinem Denon AVR zu holen. Dabei bin ich auf folgendes "Problem" gestoßen und suche nun eine möglichst einfache Lösung. Die Infos kommen vom AVR in folgender Form zurück:

    Code:
    <value>Now Playing</value>
    <value>Take Me Home Tonight (Album Version)</value>
    <value>Eddie Money</value>
    <value></value>
    <value>Can&amp;apos;T Hold Back</value>
    <value></value>
    <value></value>
    <value></value>
    <value></value>
    <value></value>
    Die fett markierten Zeichen sind eigentlich ein ' Zeichen. Wie bekomme ich das am besten encodiert?

    Danke und Gruß,
    Eike




    #2
    Hast du bereits urldecode() versucht?

    Kommentar


      #3
      Ich habe die Funktion encode () probiert. Die Quelle sollte ja UTF 8 sein, aber in was muss ich encodieren? ISO 8859-15 hat jedenfalls nicht den gewünschten Erfolg gebracht.

      Kommentar


        #4
        Versuche mal urldecode(string, $iso8859-1$c14, $iso8859-1$c14)

        Kommentar


          #5
          Habs gerade mal probiert. Leider ändert sich nichts an dem String. Ich habe jetzt urldecode(string, $iso8859-1$c14, $iso8859-1$c14) und urldecode(string, $utf-8$c14, $iso8859-1$c14) getestet.

          Hast du noch eine andere Idee?

          Danke und Gruß,
          Eike

          Kommentar


            #6
            urldecode ist nur für URLs - wenn hier z.B. Werte mit + oder in der Form %26 codiert sind.

            Richt wäre hier die Funktion html_entity_decode() - da hier der Apostroph mit codiert ist, brauchst du noch als flags ENT_QUOTES | ENT_HTML5.

            Allerdings ist der Rückgabewert falsch das &amp; steht für ein kaufmännisches und > & <, dass dann für den Apostroph die Kennzeichnug für dessen Beginn eines codierten Zeichens stehen soll. Eigentlich sollte dort nur &apos; stehen. Lösen könntest du es in diesem Fall, indem du die Funktion zweifach drüberlaufen lässt:

            PHP-Code:
            <?php

            $input 
            = <<<EOT
            <value>Now Playing</value>
            <value>Take Me Home Tonight (Album Version)</value>
            <value>Eddie Money</value>
            <value></value>
            <value>Can&amp;apos;T Hold Back</value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            EOT;

            $output1 html_entity_decode($inputENT_QUOTES ENT_HTML5);
            $output2 html_entity_decode($output1ENT_QUOTES ENT_HTML5);

            echo(
            $output1);
            echo(
            "\n\n----\n\n");
            echo(
            $output2);
            Ausgabe:
            Code:
            <value>Now Playing</value>
            <value>Take Me Home Tonight (Album Version)</value>
            <value>Eddie Money</value>
            <value></value>
            <value>Can&apos;T Hold Back</value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            
            ----
            
            <value>Now Playing</value>
            <value>Take Me Home Tonight (Album Version)</value>
            <value>Eddie Money</value>
            <value></value>
            <value>Can'T Hold Back</value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            <value></value>
            http://sandbox.onlinephpfunctions.co...32c5bf4392bdf8

            Kommentar


              #7
              Zitat von Dante Beitrag anzeigen
              Richt wäre hier die Funktion html_entity_decode()
              Das ist aber PHP; bringt also am eibPC nichts ...

              Kommentar


                #8
                Ups, tschuldigung - hatte nur urldecode gelesen und eben an PHP gedacht.

                Kommentar


                  #9
                  Hallo zusammen,

                  erstmal vielen Dank für die Anleitung in PHP, sehr interessant wie es einfach gehen könnte. Leider habe ich keine direkte Konvertierungsmöglichkeit mit dem eibPC gefunden und habe mir nun mit diversen Stringoperationen beholfen.

                  Gruß,
                  Eike

                  Kommentar


                    #10
                    Ich hab das mal auf die Liste für künftige Erweiterungen gesetzt .
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Das klingt gut.

                      Kommentar

                      Lädt...
                      X