juppix: Möglichkeit QR-Codes zu erstellen

Moin zusammen,

ich suche eine Möglichkeit QR-Codes selbst zu generieren. Die QR-Codes sollen auf eine URL weiterleiten.

Es gibt von Google einen Service: https://developers.google.com/chart/infographics/docs/qr_codes Dieser wird jedoch eingestellt (siehe Hinweis auf der Seite oben). Ich habe den neuen Service von Google (neue API für QR-Codes) leider nicht finden können. Außerdem weiß ich nicht, wie lange der alte Service noch funktioniert :-/

  1. Kennt jemand die "neue" Google API zum Generieren von solchen QR-Codes?
  2. Kennt jemand Alternativen (in JS/PHP)?

Vielen Dank vorab und Grüße jupix

akzeptierte Antworten

  1. Moin juppix,

    ich suche eine Möglichkeit QR-Codes selbst zu generieren.

    wie das funktioniert, kannst du u.a. bei Wikipedia nachlesen.

    Die QR-Codes sollen auf eine URL weiterleiten.

    Ein QR-Code codiert nur Bytes. Es ist Sache des Clients, wie er diese Bytes interpretiert.

    1. Kennt jemand die "neue" Google API zum Generieren von solchen QR-Codes?

    Nein.

    1. Kennt jemand Alternativen (in JS/PHP)?

    Hast du denn schon bei PEAR nachgeschaut? Ansonsten gibt es auch etliche Kommandozeilenprogramme (für Linux/Unix), die man nutzen kann, z.B. qrencode.

    Viele Grüße
    Robert

  2. Hallo juppix,

    es sieht so aus als ob der Themenbereich "Infografik" aus Google Charts entfernt würde.

    Was Ersatz mit PHP oder JS angeht: Frag doch mal die Maus Ente.

    Rolf

    --
    sumpsi - posui - clusi
    1. Kennt jemand Alternativen (in JS/PHP)?

    Ich generiere QRC mit PHP für jeden Ortskalender:

      $qrc_filename = "./qrc/qrc_ORT_".addslashes($arr_in['ORT']).".png";
      if (!file_exists( $qrc_filename )) {
        include_once( "include/phpqrcode/phpqrcode.php" );
        QRcode::png('http://remso.eu/?ORT='.addslashes($arr_in['ORT']), $qrc_filename); // creates file
      }
    

    Den PHP Code bekommst du bei http://phpqrcode.sourceforge.net/

    Gruß, Linuchs

    1. Hallo Linuchs,

        $qrc_filename = "./qrc/qrc_ORT_".addslashes($arr_in['ORT']).".png";
      

      ist es Absicht, dass dein Code unter Windows nicht funktionieren soll und auch sonst merkwürdige Dateinamen produziert?

      Viele Grüße
      Robert

      1. Hallo Robert,

        soweit ich weiß, hilft PHP unter Windows mit und unterstützt Vorwärtsslashes. Es kann auch das Windows API sein. Weiß ich grad nicht.

        DIRECTORY_SEPARATOR wäre natürlich besser.

        addslashes gehört aber gar nicht hierher; Anführungszeichen braucht man im API nicht zu escapen und Backslashes haben feste Funktion. Dem kann man auch per Escape nicht entkommen.

        Rolf

        --
        sumpsi - posui - clusi
        1. Hallo Rolf,

          die PHP-Funktion addslashes escaped bestimmte Zeichen mit einem Backslash (nicht mit einem Slash/Vorwärtsschrägstrich). Das heißt, dass sich der Code von Linuchs unter Windows und Linux/Unix unterschiedlich verhält, weil er in einem Fall eine Verzeichnishierarchie abbilden möchte und im anderen Fall nur den Dateinamen „verschönert“.

          Das ist der Punkt:

          addslashes gehört aber gar nicht hierher; Anführungszeichen braucht man im API nicht zu escapen und Backslashes haben feste Funktion. Dem kann man auch per Escape nicht entkommen.

          Viele Grüße
          Robert

          1. Meine Programme laufen auf einem Linux-Server, was geht mich Windoof an?

            Und doch: Für einen Kunden hatte ich vor Jahren WAMPP auf einen USB-Stick gebannt, die PHP-Linux-Programme und Datenbank MySQL dazu.

            Es war die Fallback-Lösung für ein Projekt, falls das Internet ausfällt. Der Win-PC konnte zum Server im Intranet werden.

            Es gab keine der von euch befürchteten Probleme.

            Lediglich die Seiten bauten sich langsamer auf, ich denke, der USB-Port war der Engpass.

            Und mit addslashes werden grundsätzlich von aussen kommende Daten behandelt, es gibt gültige wie Shanty-Chor "De Tampentrecker" und Angriffe auf die Datenbank, die als Parameter daherkommen.

            Linuchs

            1. Tach!

              Und mit addslashes werden grundsätzlich von aussen kommende Daten behandelt,

              Das ist grundsätzlich falsch. Es interessiert nicht die Herkunft der Daten, sondern das Ziel.

              es gibt gültige wie Shanty-Chor "De Tampentrecker" und Angriffe auf die Datenbank, die als Parameter daherkommen.

              Es muss für jedes Ziel individuell behandelt werden, entsprechend der Regeln des Ziels. addslashes() kann bei der Datenbank das richtige Maskieren sein, aber für andere Ausgabemedien kann es auch wirkungslos bis falsch sein.

              dedlfix.

            2. Hallo Linuchs,

              Und mit addslashes werden grundsätzlich von aussen kommende Daten behandelt, es gibt gültige wie Shanty-Chor "De Tampentrecker" und Angriffe auf die Datenbank, die als Parameter daherkommen.

              ich empfehle dringend den Wiki-Artikel über Kontextwechsel zu lesen und zu beherzigen. Nur weil es etwas „jetzt auf meinem System funktioniert“, heißt eben nicht, dass es in Zukunft immer noch problemlos läuft. Ich bin lange genug in der Softwarebranche tätig um zu wissen, dass man lieber kontextgerecht arbeitet anstatt mit einem Schrotgewehr auf Jagd zu gehen.

              Viele Grüße
              Robert

      2. hi,

        ist es Absicht, dass dein Code unter Windows nicht funktionieren soll und auch sonst merkwürdige Dateinamen produziert?

        Die Frage ist, warum man überhaupt einen Dateinamen braucht? Bzw. sich um einen Solchen programmiermäßig selbst kümmern muss. Wenn der temporär sein soll würde ich eine entsprechende Library einsetzen die das plattformübergreifend macht -- da wird nur das Verzeichnis übergeben.

        MfG