|
|
|
มีปัญหา upload file txt utf8 ครับ &#%*)&#*^&#_*&$)#*$(*$ |
|
|
|
|
|
|
|
เริ่มต้นผมพัฒนาเว็บขึ้นมาบน windows ครับ มีการอัพโหลดไฟล์ utf-8 ได้ปกติ ภาษาไทยครบ ไม่เพี้ยน เนียบกิ้บ ต่อมา ผมเอาเว็บมาติดตั้งบน Centos6.8 ปัญหาคือ ไม่สามารถอัพโหลดไฟล์ txt utf-8 ได้ครับ ต้องเปลี่ยนเป็น ANSI ถึงจะอัพได้ครับ แต่ถึงอัพได้ ภาษาไทยผมก็เพี้ยน ฐานข้อมูลนี่เพี้ยนหนักเลยครับ ผู้รู้ช่วยทีครับ
Code (PHP)
<!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=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="#" enctype="multipart/form-data">
Import ฐานข้อมูล : <input type="file" name="DATABASE" />
<input type="submit" />
</form>
<?php
require_once __DIR__ .('/config/db_connect.php');
$strResult = "";
$strCut;
$strFileName = $_FILES['DATABASE']['tmp_name'];
$objFopen = @fopen($strFileName, 'r');
if ($objFopen) {
while (!feof($objFopen)) {
$file = fgets($objFopen, 4096);
$strResult .= $file;
}
fclose($objFopen);
$depwork = array();
$level = array();
$count=0;
$strResult = explode("\n",$strResult);
for($i=0;$i<count($strResult);$i++){
if($i!=0){
$strCut = explode("\t",$strResult[$i]);
if($strCut[135]==1){
array_push($depwork,$strCut[109]);
array_push($level,$strCut[104]);
}
}
}
$sql="";
$depwork = array_unique($depwork);
$level = array_unique($level);
//print_r($depwork);
//print_r($level);
$db = new DB_CONNECT();
$conn = $db->connect();
$conn->query("DROP TABLE std");
$conn->query("DROP TABLE std_depwork");
$conn->query("DROP TABLE std_level");
$conn->query("CREATE TABLE `std` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idStd` varchar(15) NOT NULL,
`name` varchar(200) NOT NULL,
`phone` varchar(20) NOT NULL,
`level` varchar(10) NOT NULL,
`room` varchar(1) NOT NULL,
`depwork` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
");
$conn->query("CREATE TABLE std_depwork (
id int(11) NOT NULL AUTO_INCREMENT,
depwork varchar(200) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8");
$conn->query("CREATE TABLE std_level (
id int(11) NOT NULL AUTO_INCREMENT,
level varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8");
foreach($depwork as $result){
$sql .= "INSERT INTO std_depwork (depwork) VALUES ('$result');";
}
foreach($level as $result){
$sql .= "INSERT INTO std_level (level) VALUES ('$result');";
}
if ($conn->multi_query($sql) === TRUE) {
echo "New records created successfully<br>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql="";
$conn = $db->close();
$conn = $db->connect();
for($i=0;$i<count($strResult);$i++){
if($i!=0){
$strCut = explode("\t",$strResult[$i]);
if($strCut[135]==1){
$strCut[1] = str_replace("นางสาว","",$strCut[1]);
$strCut[1] = str_replace("นาย","",$strCut[1]);
$strCut[143] = str_replace("-","",$strCut[12]);
$strCut[101] = str_replace("-","",$strCut[101]);
$strCut[101] = trim($strCut[101]);
$query = $conn->query("SELECT id FROM std_depwork WHERE depwork='$strCut[109]'");
$resultDepwork = $query->fetch_array(MYSQLI_ASSOC);
$sql .= "INSERT INTO std (idStd, name, phone, level, room, depwork) VALUES ('$strCut[0]', '$strCut[1]', '$strCut[12]', '$strCut[104]', '$strCut[101]', '$resultDepwork[id]');";
//echo "INSERT INTO std (idStd, name, phone, level, room, depwork) VALUES ('$strCut[0]', '$strCut[1]', '$strCut[12]', '$strCut[104]', '$strCut[101]', '$resultDepwork[id]');<br>";
}
}
}
if ($conn->multi_query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
Tag : PHP
|
|
|
|
|
|
Date :
2016-11-04 16:28:55 |
By :
godliony |
View :
677 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดู htmlentities() ดูครับ
|
|
|
|
|
Date :
2016-11-07 12:45:14 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|