โดย applebit » 18/02/2009 11:49 pm
โปรแกรมนี้เป็นโปรแกรมที่ไปดึงค่าใน ไฟล์ .CSV จากเว็บธนาคารแห่งประเทศไทยมาแสดงผลอัตราดอกเบี้ยอะครับ ผมเอามา
รันบน localhostในเครื่องผมเองไม่มีไรเสียครับ แต่พอ
พาขึ้นhostจริง (เป็นhostของมหาลัย) มันแสดงผลไม่ได้ซึ่งผมคิดว่าน่าจะเป็นที่เงื่อนไขเช็คที่ผม
คอมเม้นท์ไว้ในโค้ดข้างล่างนี้นะครับ ซึ่งผมสันนิจฐานว่าน่าจะเป็นเรื่องของพวก encoding (อันนี้ผมรู้สึกว่าเอาเองนะครับ) ยังไงก็ช่วยดูให้ด้วยนะครับ ขอบคุณมากครับ
โค้ด: เลือกทั้งหมด
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
<style type="text/css">
body,td,th {
font-family: Microsoft Sans Serif;
font-size: small;
}
</style></head>
<body>
<?php
// no direct access
//defined( '_VALID_MOS' ) or die( 'Restricted access' );
$day = date("w");
//echo $day;
if ($day==0){
$date = (date("j")-2).date("m").date("Y")+543;
}
else if ($day==6){
$date = (date("j")-1).date("m").date("Y")+543;
}
else{
$date = date("jm").date("Y")+543;
}
$fh = @fopen("http://www.bot.or.th/Thai/Statistics/FinancialMarkets/InterestRate/_layouts/application/interest_rate/InterestRate_TH_CSV/IN_CSV_DPT_".$date.".CSV","r") or
$fh = @fopen("http://www.bot.or.th/Thai/Statistics/FinancialMarkets/InterestRate/InterestRate_TH_CSV/IN_CSV_DPT_".((date("j")-1).date("m").date("Y")+543).".CSV","r");
$i = 1;
if($fh){
while(!feof($fh)){
$txt = fgetcsv($fh,8192,"|");
if($i == 1){
$i = $i+1;
}else{
if(is_array($txt)){
if($txt[0]=="กรุงไทย"){ // <---------- ผมคิดว่าน่าจะเป็นที่ตรงจุดนี้ เป็นเรื่อง encoding ที่ทำให้แสดงผลไม่ออก
?>
<table border="0" align="left" width="148" height="150">
<tr align="center" valign="middle" style="height: 40px">
<td width="62" style="font-weight: bold; color: #ffffff; background-color: #747474">เงินฝาก</td>
<td width="76" align="center" valign="middle" style="font-weight: bold; color: #ffffff; background-color: #747474" scope="col">ดอกเบี้ย<br />
(%)</td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ออมทรัพย์</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[1]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #e4e4e4">ประจำ 3 ด. </td>
<td style="font-size: 11px; background-color: #e4e4e4"><?=$txt[2]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ประจำ 6 ด.</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[3]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #e4e4e4">ประจำ12 ด.</td>
<td style="font-size: 11px; background-color: #e4e4e4"><?=$txt[4]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ประจำ24 ด.</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[5]?> </td>
</tr>
<tr align="center" valign="middle">
<td colspan="2" style="font-size: 11px; color: #ffffff; background-color: #747474">ที่มา::ธนาคารแห่งประเทศไทย</td>
</tr>
</table>
<?
}
}else{
break;
}
}
}
}
?>
</body>
</html>
โปรแกรมนี้เป็นโปรแกรมที่ไปดึงค่าใน ไฟล์ .CSV จากเว็บธนาคารแห่งประเทศไทยมาแสดงผลอัตราดอกเบี้ยอะครับ ผมเอามา[u]รันบน localhostในเครื่องผมเองไม่มีไรเสีย[/u]ครับ แต่พอ[u]พาขึ้นhostจริง (เป็นhostของมหาลัย) มันแสดงผลไม่ได้[/u]ซึ่งผมคิดว่าน่าจะเป็นที่เงื่อนไขเช็คที่ผม[b]คอมเม้นท์[/b]ไว้ในโค้ดข้างล่างนี้นะครับ ซึ่งผมสันนิจฐานว่าน่าจะเป็นเรื่องของพวก encoding (อันนี้ผมรู้สึกว่าเอาเองนะครับ) ยังไงก็ช่วยดูให้ด้วยนะครับ ขอบคุณมากครับ
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
<style type="text/css">
body,td,th {
font-family: Microsoft Sans Serif;
font-size: small;
}
</style></head>
<body>
<?php
// no direct access
//defined( '_VALID_MOS' ) or die( 'Restricted access' );
$day = date("w");
//echo $day;
if ($day==0){
$date = (date("j")-2).date("m").date("Y")+543;
}
else if ($day==6){
$date = (date("j")-1).date("m").date("Y")+543;
}
else{
$date = date("jm").date("Y")+543;
}
$fh = @fopen("http://www.bot.or.th/Thai/Statistics/FinancialMarkets/InterestRate/_layouts/application/interest_rate/InterestRate_TH_CSV/IN_CSV_DPT_".$date.".CSV","r") or
$fh = @fopen("http://www.bot.or.th/Thai/Statistics/FinancialMarkets/InterestRate/InterestRate_TH_CSV/IN_CSV_DPT_".((date("j")-1).date("m").date("Y")+543).".CSV","r");
$i = 1;
if($fh){
while(!feof($fh)){
$txt = fgetcsv($fh,8192,"|");
if($i == 1){
$i = $i+1;
}else{
if(is_array($txt)){
if($txt[0]=="กรุงไทย"){ // <---------- ผมคิดว่าน่าจะเป็นที่ตรงจุดนี้ เป็นเรื่อง encoding ที่ทำให้แสดงผลไม่ออก
?>
<table border="0" align="left" width="148" height="150">
<tr align="center" valign="middle" style="height: 40px">
<td width="62" style="font-weight: bold; color: #ffffff; background-color: #747474">เงินฝาก</td>
<td width="76" align="center" valign="middle" style="font-weight: bold; color: #ffffff; background-color: #747474" scope="col">ดอกเบี้ย<br />
(%)</td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ออมทรัพย์</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[1]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #e4e4e4">ประจำ 3 ด. </td>
<td style="font-size: 11px; background-color: #e4e4e4"><?=$txt[2]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ประจำ 6 ด.</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[3]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #e4e4e4">ประจำ12 ด.</td>
<td style="font-size: 11px; background-color: #e4e4e4"><?=$txt[4]?></td>
</tr>
<tr align="center" valign="middle">
<td style="font-size: 11px; background-color: #ffffe6">ประจำ24 ด.</td>
<td style="font-size: 11px; background-color: #ffffe6"><?=$txt[5]?> </td>
</tr>
<tr align="center" valign="middle">
<td colspan="2" style="font-size: 11px; color: #ffffff; background-color: #747474">ที่มา::ธนาคารแห่งประเทศไทย</td>
</tr>
</table>
<?
}
}else{
break;
}
}
}
}
?>
</body>
</html>[/code]