javascriptやPHPで画面にqrcodeを作成し表示できます。
qrcodeをgif,jpgなど画像としてサーバー、ローカルでどちらでもいいので保存したいです。
良い方法がありましたら、お教えください。
お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ベストアンサー
PHP では file_put_contents
関数を使用してファイルを保存することができます。
投稿2016/10/13 14:31
総合スコア1610
0
javascriptやPHPで画面にqrcodeを作成し表示できます。
qrcodeをURIでなく、gif,jpgなど画像としてサーバー、ローカルでどちらでもいいので保存したいです。
良い方法がありましたら、お教えください。
お願いします。
var_dump($qrcode);を使って
string(218) "http://chart.apis.google.com/chart?cht=qr&chs=150x150&choe=Shift_JIS&chl=%0D%0Ahttp%3A%2F%2Fhiroshima.whitesnow.jp%2Fqrcode_data_print%2Fhtdocs%2Fphp-recipe%2F04%2Fwork%2Fget.php%3Fid%3D5%26name%3Dhiroshima"
の文字列が確認できました。
しかし、gifとしてなにか保存していますが、画像ではないようです。
度々すいません。
ファイル名を設定します。
$fileName = '../../../../data/output/qr_code.gif';
if (! is_dir(dirname($fileName))) {
die('保存するディレクトリが存在しません。');
}
ファイル名を設定します。
$fileName = '../../../../data/output/qr_code.gif';
ファイルが書き込み可能か調べます。
if (is_writable($fileName)) {
echo $fileName . ' は書き込み可能です。<br>';
} else {
echo $fileName . ' は書き込みできないか、存在しません。<br>';
}
QRコードにする文字列を設定します。
$string ="\r\nhttp://hiroshima.whitesnow.jp/qrcode_data_print/htdocs/php-recipe/04/work/get.php?id=5&name=hiroshima";
$encString = rawurlencode($string);
QRコードの要素をセットします。
$parts = array(
'cht' => 'qr', // QRコード
'chs' => '150x150', // サイズ
'choe' => 'Shift_JIS', // 出力エンコード
'chl' => $encString, // QRコードにする文字列
);
QRコードのURIを生成します。
$qrcode = assembledUri($parts);
QRコードを出力します。
echo '<img src="' . $qrcode . '" alt="QRコード" />';
//$qrcode = file_get_contents($qrcode);
//header('Content-type: image/gif');
グラフのURIを組み立てるユーザー定義関数を定義します。
function assembledUri($parts) {
$uri = 'http://chart.apis.google.com/chart?';
$query = '';
foreach ($parts as $key => $val) {
if ($query != '') {
$query .= '&';
}
$query .= "$key=$val";
}
$uri .= $query;
return $uri;
}
/*# 画像をファイルに保存します。
成功した場合、imagepng()関数はtrueを返します。
if (imagepng($qrcode, $fileName)) {
☆レシピ131☆(ディレクトリ内の画像を一覧表示したい)の「display.php」を使って画像を表示させます。
$url = '../02/display.php?file=' . rawurlencode(basename($fileName))
. '&dir=output';
echo '<a href="' . h($url) . '">保存した画像ファイルを表示する</a>';
}else{
echo '失敗';
}*/
var_dump($qrcode);
// 結果をファイルに書き出します
file_put_contents($fileName, $qrcode);
画像を破棄しメモリを解放します。
imagedestroy($qrcode);
?>
投稿2016/10/16 12:18
総合スコア7
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
file_put_contents
の実行直前に var_dump
等で $img
の内容が正しく出力されることは確認しましたか?
投稿2016/10/14 12:52
総合スコア1610
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
保存先のフォルダのパーミッションを確認してください。Web サーバーなどがそのフォルダの所有者と異なるユーザーで PHP を実行している場合は適切な書き込み権限が与えられている必要があります。
PHP からは is_writable
関数にファイル名を渡すことで書き込みが可能かを調べることができます。
正しく設定されていなければコマンドラインなどから当該フォルダに 0777 を設定します。
投稿2016/10/14 06:08
総合スコア1610
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/13 23:45