Dynamiczne generowanie kodu QR za pomocą PHP [zamknięte]
98
Próbuję wygenerować kody QR na mojej stronie internetowej. Wszystko, co muszą zrobić, to mieć w sobie adres URL, który zapewni zmienna w mojej witrynie. Jaki byłby najłatwiejszy sposób na zrobienie tego?
nie wymyślaj na nowo koła! poniższe odpowiedzi są idealne
Jordan Arseno
4
Akor: czy mógłbyś cofnąć moją odpowiedź? Firma Google wycofała interfejs API, na którym opiera się moja odpowiedź, dlatego odtąd nie ma on większego znaczenia.
Czy są jakieś ograniczenia w korzystaniu z Google API? Mam na myśli ograniczenia jak: ilość zgłoszeń w danym czasie itp.
Lobo
11
Należy zauważyć, że jest to przestarzałe. Google planuje kontynuować wsparcie do 2015 r. Dlatego jak zwykle zastrzegaj sobie pustkę.
Blainarmstrong
4
@Lobo Zgodnie z ich dokumentacją : „ Nie ma ograniczeń co do dziennej liczby wywołań interfejsu API Google Chart. Zastrzegamy sobie jednak prawo do blokowania wszelkich zastosowań, które uznamy za nadużycia ”.
Alexandru Guzinschi
3
Uważam, że odpowiedź @abaumg jest lepsza, ponieważ nie zależy od stron trzecich, takich jak Google ...
arod
4
Wrzesień 2019 - nadal działa!
Anupam
87
Najłatwiejszym sposobem generowania kodów QR za pomocą PHP jest biblioteka phpqrcode .
+1 to odpowiada bliżej na pytanie, możesz samodzielnie wygenerować kod QR, bez ograniczeń nałożonych przez Google na żądania. Zapewni to również, że Twoja witryna będzie działać, nawet po zmianie umowy dotyczącej punktu końcowego Google.
Sunny R Gupta
Uczciwe ostrzeżenie: Wygląda na to, że ta biblioteka może być „martwa” - autor nie aktualizował jej od października 2010 roku i ma kilka poprawek w module śledzenia problemów, które użytkownicy biblioteki powinni rozważyć przed użyciem.
CubicleSoft
ale jak przekonwertować to na standard MVC jakieś pomysły !!!!
saurabh kamble
@CubicleSoft Myślę, że programista potraktował twój komentarz poważnie i od razu zaktualizował
mokNathal
@mokNathal - nie widzę tu nic innego. Najnowsze wydanie dostępne na stronie z
plikami
24
Biblioteka phpqrcode jest naprawdę szybki, aby skonfigurować i dokumentacja API jest łatwe do zrozumienia.
wydaje się, że ta biblioteka nie działa dla różnych danych wejściowych, ale mały i prosty tekst jest w porządku
duckduckgo
Czy możesz podać przykład?
RafaSashi
nic wielkiego, kiedy robię $ codeContents = "www.example.com", jest ok, ale jeśli robię $ codeContents = "www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttIr1B0=" to nie pokazuje poprawnego obrazu.
duckduckgo
Nie mogę odtworzyć błędu. Działa dobrze z QRcode :: png ('www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5C6AfyJM4uB6ntVttI r1B0 ='); może ma to coś wspólnego z główkami
RafaSashi
2
Czy mogę używać biblioteki php-qrcode do celów komercyjnych, takich jak tworzenie strony internetowej, która wymaga kodu QR w jakiejś części?
Suneeta Singh,
16
Biblioteka endroid / QrCode jest łatwa w użyciu, dobrze utrzymana i można ją zainstalować za pomocą narzędzia Composer . Istnieje również pakiet do bezpośredniego użycia z Symfony.
Instalowanie:
$ composer require endroid/qrcode
Stosowanie :
<?php
useEndroid\QrCode\QrCode;
$qrCode =newQrCode();
$qrCode
->setText('Life is too short to be generating QR codes')->setSize(300)->setPadding(10)->setErrorCorrection('high')->setForegroundColor(array('r'=>0,'g'=>0,'b'=>0,'a'=>0))->setBackgroundColor(array('r'=>255,'g'=>255,'b'=>255,'a'=>0))->setLabel('Scan the code')->setLabelFontSize(16)->setImageType(QrCode::IMAGE_TYPE_PNG);// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();// or create a response object
$response =newResponse($qrCode->get(),200, array('Content-Type'=> $qrCode->getContentType()));
Panie Iwazaru , jak mogę użyć, setText()jeśli mam WIELE danych? Na przykład, mam $a = 1, $b = 2, $c = 3?. Potrzebuję więcej niż JEDNEGO zdania lub ciągu znaków. Jak mogę to zrobić?
Ponieważ setTextmetoda akceptuje tylko jeden parametr, sądzę, że przed przekazaniem należy połączyć zmienne w jeden. Ale nie jestem pewien, czy dobrze rozumiem twój problem, może powinieneś otworzyć problem w repozytorium biblioteki.
Iwazaru
Iwazaru Mam odpowiedź proszę pana ..
Chcesz się tym podzielić? ;)
Iwazaru
1
Jasne :) Użyłem implode () w php, aby połączyć wszystkie dane, a następnie eksplodować () w razie potrzeby. To wszystko sir :)
10
qrcode-generator na Github. Najprostszy skrypt i działa jak urok.
Nie mogę znaleźć żadnych dokumentów na ten temat, ale wygląda świetnie!
Björn C
@ praba230890 czy możesz podać więcej przykładów z tym skryptem? Próbuję uzyskać informacje kontaktowe w kodzie QR 300x300 px Zainstalowałem / pobrałem skrypt na moim lokalnym hoście i sample_html.php działa. Ale pozostałych dwóch nie. mój japoński nie jest taki dobry (ok, użyję tłumacza google)
Alex
och i czy byłoby to szybsze / lepsze niż biblioteka phpqrcode?
Alex
to jest desperackie.
navjot singh
5
Używam google qrcode api od jakiegoś czasu, ale nie podobało mi się to, ponieważ wymaga to połączenia z Internetem, aby uzyskać dostęp do wygenerowanego obrazu.
Zrobiłem trochę badań w linii poleceń i odkryłem, że linux ma narzędzie wiersza poleceń qrencodedo generowania kodów QR.
Napisałem ten mały scenariusz. A dobrą stroną jest to, że wygenerowany obraz ma rozmiar mniejszy niż 1 KB. Cóż, dostarczone dane to po prostu adres URL.
Co się stanie, jeśli pójdziesz dohttp://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Doktor J
wyjaśniono tutaj escapeshellarg (dla tych, którzy się zastanawiają) - stackoverflow.com/a/22739494/195722 . Osobiście nie wypowiadałbym się za każdym razem na polecenie (szczególnie w przypadku pokolenia publicznego) i zdecydowanie użyłbym wyrażenia regularnego, aby upewnić się, że przekazane przez niego są ciągiem, którego się spodziewałem.
Natalie Adams
działa dobrze na ubuntu 16.04
Asuquo12
4
Wiem, że pytanie brzmi, jak generować kody QR za pomocą PHP, ale dla innych, którzy szukają sposobu na generowanie kodów dla stron internetowych, zrobienie tego w czystym javascript jest dobrym sposobem na zrobienie tego. Jquery-qrcode plugin jquery robi to dobrze.
Od jakiegoś czasu używam wtyczki Jquery github.com/lrsjng/jquery-qrcode , również ładna. Jednak dane wyjściowe są tylko binarne. Więc jeśli musisz wygenerować i zapisać obraz jako PNG, nie pomoże to zbytnio. Dlatego większość programistów czytających to pytanie potrzebuje PHP.
Kai Noack,
Jest to możliwe , aby pobrać JS generowane dane obrazu 100% w kliencie.
Quinn Comendant
Przepraszam, że nie jest to jasne. Miałem na myśli „zapisywanie po stronie serwera” - niemożliwe tylko z Javascriptem.
Odpowiedzi:
Warto dodać, że oprócz biblioteki kodów QR opublikowanej przez @abaumg , Google udostępnia plik
QR Codes APIQR Codes API Podziękowania dla @Toukakoukan za aktualizację linków .Aby z tego skorzystać, w zasadzie:
300x300
to rozmiar obrazu QR, który chcesz wygenerować,chl
jest ciąg url zakodowane chcesz zmienić na kod QR ichoe
jest (opcjonalne) kodowanie.Powyższy link daje więcej szczegółów, ale aby go użyć, wystarczy
src
wskazać na obrazie zmanipulowaną wartość, na przykład:Próbny:
źródło
Najłatwiejszym sposobem generowania kodów QR za pomocą PHP jest biblioteka phpqrcode .
źródło
Biblioteka phpqrcode jest naprawdę szybki, aby skonfigurować i dokumentacja API jest łatwe do zrozumienia.
Oprócz odpowiedzi abaumga załączyłem 2 przykłady
PHP
z http://phpqrcode.sourceforge.net/examples/index.php1. Koder QR code
najpierw dołącz bibliotekę ze ścieżki lokalnej
następnie, aby wyprowadzić obraz bezpośrednio jako strumień PNG, na przykład:
aby zapisać wynik lokalnie jako obraz PNG:
2. Dekoder kodu QR
Zobacz także dekoder zxing :
http://zxing.org/w/decode.jspx
Całkiem przydatne do sprawdzenia wyników.
3. Lista formatu danych
Lista formatów danych, których możesz użyć w kodzie QR zgodnie z typem danych:
http://
)źródło
Biblioteka endroid / QrCode jest łatwa w użyciu, dobrze utrzymana i można ją zainstalować za pomocą narzędzia Composer . Istnieje również pakiet do bezpośredniego użycia z Symfony.
Instalowanie:
Stosowanie :
źródło
setText()
jeśli mam WIELE danych? Na przykład, mam$a = 1
,$b = 2
,$c = 3
?. Potrzebuję więcej niż JEDNEGO zdania lub ciągu znaków. Jak mogę to zrobić?setText
metoda akceptuje tylko jeden parametr, sądzę, że przed przekazaniem należy połączyć zmienne w jeden. Ale nie jestem pewien, czy dobrze rozumiem twój problem, może powinieneś otworzyć problem w repozytorium biblioteki.qrcode-generator na Github. Najprostszy skrypt i działa jak urok.
Plusy:
źródło
Używam google qrcode api od jakiegoś czasu, ale nie podobało mi się to, ponieważ wymaga to połączenia z Internetem, aby uzyskać dostęp do wygenerowanego obrazu.
Zrobiłem trochę badań w linii poleceń i odkryłem, że linux ma narzędzie wiersza poleceń
qrencode
do generowania kodów QR.Napisałem ten mały scenariusz. A dobrą stroną jest to, że wygenerowany obraz ma rozmiar mniejszy niż 1 KB. Cóż, dostarczone dane to po prostu adres URL.
Następnie w html ładuję obrazek:
Wystarczy go zainstalować. [większość aplikacji do przetwarzania obrazu na Linuksie zainstalowałaby go pod maską bez twojej wiedzy.
źródło
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Wiem, że pytanie brzmi, jak generować kody QR za pomocą PHP, ale dla innych, którzy szukają sposobu na generowanie kodów dla stron internetowych, zrobienie tego w czystym javascript jest dobrym sposobem na zrobienie tego. Jquery-qrcode plugin jquery robi to dobrze.
źródło