问题描述
我想读取一个 csv 文件并将数据放入 MysqL 数据库中。问题是“é”编码错误。我试着把这个标题:
header('Content-Type: text/html; charset=UTF-8');
但是没有用。
这是我的代码,问题出在变量 $site 上:
<?PHP
include_once __DIR__ . '/../../../components/functions.PHP';
$filename = "../../../Factures/factures.csv";
header('Content-Type: text/html; charset=UTF-8');
if(($csvfile = fopen($filename,"r")) !== FALSE)
{
fgets($csvfile); fgets($csvfile); fgets($csvfile); fgets($csvfile);
while (($data = fgetcsv($csvfile,",")) !== FALSE)
{
$data = array_map("utf8_encode",$data);
//Formattage des données
$j = substr($data[3],2); $m = substr($data[3],3,2); $y = substr($data[3],6,4);
$dateDeb = $y . $m . $j;
$j2 = substr($data[4],2); $m2 = substr($data[4],2); $y2 = substr($data[4],4);
$dateFin = $y2 . $m2 . $j2;
$data[5] = str_replace(",".",$data[5]);
$data[6] = str_replace(",$data[6]);
$data[8] = str_replace(",$data[8]);
print($data[0] . "\n");
$req = $pdo->prepare('INSERT INTO Factures SET Site = :unSite,Type = :unType,Numero = :unNumero,DateFacture = :uneDateFacture,DateEcheance = :uneDateEcheance,MontantHT = :unMontantHT,TVA = :uneTVA,MontantTT = :unMontantTT,SoldeTTC = :unSoldeTTC');
$req->execute(array(
':unSite' => utf8_encode($data[0]),':unType' => $data[1],':unNumero' => $data[2],':uneDateFacture' => date("Y/m/d",strtotime($dateDeb)),':uneDateEcheance' => date("Y/m/d",strtotime($dateFin)),':unMontantHT' => round(doubleval($data[5]),2),'uneTVA' => round(doubleval($data[6]),'unMontantTT' => round(doubleval($data[5]+doubleval($data[6])),'unSoldeTTC' => round(doubleval($data[8]),2)
));
}
fclose($csvfile);
//sup ou garder
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)