我想在 HTML 表格中放置一個二維碼。我試過了,但我不知道如何解決它。
我認為這很簡單 - 只需將 php 代碼放在 <td></td>. 結果顯示中間有一個小桌子,但這不是我想要的。我想要第二行的二維碼。在第一行,我想插入一些關于我公司的文字。
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>A basic HTML table</h2>
<table style="width:100%">
<tr>
<th>Company</th>
</tr>
<tr>
<td>
<?php
/**
* QR Code Logo Generator
*
* http://labs.nticompassinc.com
*/
session_start();
$qrcodeinfo =$_SESSION['qrcodeinfo'];
$data = isset($_GET['data']) ? $_GET['data'] : "$qrcodeinfo";
$size = isset($_GET['size']) ? $_GET['size'] : '300x300';
$logo = isset($_GET['logo']) ? $_GET['logo'] : 'Thai_QR_Payment_Logo-03.png';
header('Content-type: image/png');
// Get QR Code image from Google Chart API
// http://code.google.com/apis/chart/infographics/docs/qr_codes.html
$QR = imagecreatefrompng('https://chart.googleapis.com/chart?cht=qr&chld=H|0&chs='.$size.'&chl='.urlencode($data));
if($logo !== FALSE){
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);
$QR_height = imagesy($QR);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
// Scale logo to fit in the QR Code
$logo_qr_width = $QR_width/5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
imagecopyresampled($QR, $logo, $QR_width/5, $QR_height/5, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
}
imagepng($QR);
imagedestroy($QR);
?>
</td>
</tr>
</table>
</body>
</html>
uj5u.com熱心網友回復:
您將兩種型別的輸出(HTML 和原始影像資料)組合到一個輸出流中,這是行不通的。您的代碼首先輸出一些 HTML,但在其中間,您切換到輸出原始影像資料。瀏覽器會嘗試將原始資料嵌入到 HTML 檔案中,但不會將其視為影像資料。此外,您將 Content-Type 標頭更改為影像格式,但整體輸出將不是有效影像(因為它包含 HTML 文本)。
要將影像放入 HTML 檔案,您可能知道,必須使用<img>標記。該標簽在其src屬性中包含一個 URL,然后瀏覽器可以 -單獨- 下載影像并將其顯示在 HTML 檔案中<img>放置該標簽的位置。
因此,要實作這一點,您的 HTML 檔案應該在 中簡單地包含一個<img>標記<td>,其srcURL 指向第二個 PHP 腳本——這個單獨的腳本將生成影像資料并輸出它,并且該影像資料將在瀏覽器請求時接收的srcURL,因此然后可以通過瀏覽器用來顯示在正確的位置的影像。
例如,這樣的事情:
主頁:
<?php
//ensure any relevant GET parameters provided to the main page are passed on to the QR code script
$dataParams = isset($_GET['data']) ? "data=".$_GET['data'] : "");
$dataParams .= isset($_GET['size']) ? ($dataParams != "" ? "&" : "")."size=".$_GET['size'] : "");
$dataParams .= isset($_GET['logo']) ? ($dataParams != "" ? "&" : "")."logo=.$_GET['logo'] : "");
$qrURL = "generateqr.php?".$dataParams;
?>
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>A basic HTML table</h2>
<table style="width:100%">
<tr>
<th>Company</th>
</tr>
<tr>
<td>
<img src="<?php echo $qrURL; ?>" alt="PHP - 在 html 表格中生成二維碼" />
</td>
</tr>
</table>
</body>
</html>
生成qr.php
<?php
/**
* QR Code Logo Generator
*
* http://labs.nticompassinc.com
*/
session_start();
$qrcodeinfo = $_SESSION['qrcodeinfo'];
$data = isset($_GET['data']) ? $_GET['data'] : "$qrcodeinfo";
$size = isset($_GET['size']) ? $_GET['size'] : '300x300';
$logo = isset($_GET['logo']) ? $_GET['logo'] : 'Thai_QR_Payment_Logo-03.png';
header('Content-type: image/png');
// Get QR Code image from Google Chart API
// http://code.google.com/apis/chart/infographics/docs/qr_codes.html
$QR = imagecreatefrompng('https://chart.googleapis.com/chart?cht=qr&chld=H|0&chs='.$size.'&chl='.urlencode($data));
if($logo !== FALSE){
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);
$QR_height = imagesy($QR);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
// Scale logo to fit in the QR Code
$logo_qr_width = $QR_width/5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
imagecopyresampled($QR, $logo, $QR_width/5, $QR_height/5, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
}
imagepng($QR);
imagedestroy($QR);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404697.html
標籤:
上一篇:當我單擊“所有”h1元素時,我想切換.textDecoration類。你能幫我處理這個代碼嗎?
下一篇:如何使影像的大小與導航按鈕相同?
