作者tzj7108 (批踢踢小神童)
看板PHP
标题[请益] PHPExcel 连结乱码问题
时间Thu Dec 9 02:38:30 2010
最近买了一本Excel + PHP WEB资料库开发
按照书上教学试作了商品订购网页
网页显示的部份是正常
但是连结EXCEL档到网页中就为乱码
小弟的网页架购为UTF-8的
该如何除错呢?
以下为程式码
<?php
/*************************************************
【A】前期处理
*************************************************/
// 开始session
session_start();
// 读取函式库
require_once("PHPExcel/IOFactory.php");
// 载入Excel档案
$obj = PHPExcel_IOFactory::load("temp.xlsx");
// 设定现用工作表
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();
/*************************************************
【B】制作商品资料库
*************************************************/
// 将商品资料放入阵列中
foreach ($sheet->getRowIterator() as $row) {
// 越过标题列(1列)
if ($row->getRowIndex() == 1) {
continue;
}
// 取得全栏
$cols = $row->getCellIterator();
// 处理各栏
$ar_prod = NULL;
foreach ($cols as $col) {
// 将A栏(商品ID)当成索引
if (substr($col->getCoordinate(), 0, 1) == "A") {
$idx = $col->getValue();
} else {
// 将A栏以外(商品名称与单价)放入阵列
$ar_prod[] = toUTF($col->getValue());
}
}
// 将一个商品资料放入阵列
$ar_prods[$idx] = $ar_prod;
}
// 将商品资料的阵列放入session变数中
$_SESSION["prods"] = $ar_prods;
// 变更文字编码用的函数
function toUTF($a) {
return mb_convert_encoding($a, "UTF-8" ,"BIG-5");
}
/*************************************************
【C】制作订购用商品清单
*************************************************/
$select = "<table border=\"1\"><tr bgcolor=\"silver\">";
$select .= "<td width=\"200\">商品名称</td>";
$select .= "<td width=\"100\">单价(日圆)</td>";
$select .= "<td width=\"50\">数量</td></tr>";
foreach ($_SESSION["prods"] as $prod_id=>$prod) {
$select .= "<tr>";
$select .= "<td>{$prod[0]}</td>";
$select .= "<td align=\"right\">"
. number_format($prod[1]) . "</td>";
$select .= "<td>";
$select .= "<select name=\"prod-{$prod_id}\">";
for ($i = 0; $i <= 10; $i++) {
$select .= "<option value='$i'>$i</option>";
}
$select .= "</select>";
$select .= "</td>";
$select .= "</tr>";
}
$select .= "</table>";
?>
<!--************************************************
【D】显示订购画面
************************************************-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>订购表单</title>
</head>
<body>
<center>
<form method="POST" action="confirm.php">
<p>请选择订购商品的数量</p>
<?php echo $select; ?>
<p>请输入寄送地址</p>
<table border="1">
<tr>
<td bgcolor="silver">姓名</td>
<td><input type="text" name="name" size="30"></td>
</tr>
<tr>
<td bgcolor="silver">邮递区号</td>
<td><input type="text" name="postcode" size="10"></td>
</tr>
<tr>
<td bgcolor="silver">地址</td>
<td><input type="text" name="address" size="54"></td>
</tr>
<tr>
<td bgcolor="silver">联络事项</td>
<td>
<textarea rows="3" cols="30" name="message"></textarea>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="submit" name="sub1" value="确认订购内容">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.159.243