2

バックグラウンド

私たちの会社では、手動でより良いことをするための作業が少なくて済みます。私たちのマーケティング担当者が私に近づき、PHPで名刺を自動的に生成する方法があるかどうか尋ねました。テンプレートをSVGファイルとして保存できれば問題ないはずだと彼女に言いました。

それで彼女はそうしました。詳細スペースを見つけてユーザー入力に置き換えるだけなので、テキストの編集は非常に簡単です。

問題

私が現在抱えている最大の問題は、GoogleChartsAPIから取得したQRコードです。QRコードには、携帯電話に簡単に保存できる名刺データが含まれています。QRコードは、GoogleChartsAPIへの次の呼び出しで取得されます。

$request = "http://chart.apis.google.com/chart?chs=500x500&cht=qr&chld=M&chl=" . urlencode($vcard);

$vcardPHPで作成したVCardはどこにありますか。QRコードをスキャンするときにVCardを使用できるため、これは機能します。

私が試したこと

SVGファイル内の画像はすべてテキストにエンコードされているため、次の方法を試しました。

file_get_contents($request); // Seems the encoding is of as there are weird characters in the result
img2php.class // Downloaded from PHP Classes, but only converts images in a directory

追加情報

私が気付いたのは、QRコードは生成されたPNGであるということです。それが答えに影響するかどうかはわかりません。

また、名刺の現在のQRコードは次のようにエンコードされます。

<image overflow="visible" width="200" height="200"
xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBZwFnAAD/
7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA
EAMCAwYAAAReAAALrQAAHjX/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX
Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBE
    ** random gibberish **
saaZZmll6QMgIAGkLbb5qxkhmSE47OSXBN9YXg81d+i5LV36LktWPktmRMsMqSFQrXIRg1v8bjuM
2IBmJtpbymu/Rclq79FyWrv0XJasl5p0mGQqABARbQW4fP8A/s//
2Q==" transform="matrix(0.2003 0 0 0.2003 56.5049 191.0313)">
</image>

質問

Google APIからQRコードを取得し、それを文字列にエンコードしてSVGテンプレートに追加する方法はありますか?

4

1 に答える 1

1

そして、私はそれを自分で修正することができました...そしてもう少しグーグルを使用することによって。

まず、GoogleAPIから画像をプルします。

$image = file_get_contents('http://chart.apis.google.com/chart?chs=500x500&cht=qr&chld=M&chl=' . urlencode($vcard));

次に、base64_encodeを使用して文字列にエンコードします。

$image = base64_encode($image);

そしてそれはうまくいきます。QRコードは正しくスキャンします。:D

于 2012-11-09T07:21:42.770 に答える