|
|
|
|
|
для: emil116
(02.12.2011 в 17:12)
| | Объсните пожалуйста!
Почему так в базу вносит: 12В NARVA Лампы головного света
а так: Лампы головного света 12В NARVA получается:12В NARVA | |
|
|
|
|
|
|
|
для: cheops
(02.12.2011 в 19:56)
| |

<?php
include "netcat/connect_io.php"; // Соединение с базой
header('Content-type: text/html; charset=utf-8');
if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8');
if(setlocale(LC_ALL, 0) == 'C') die('Не поддерживается ни одна из перечисленных локалей (ru_RU.utf8, en_US.utf8)');
$url = $_FILES["file"]["name"];
echo 'Запись из файла: <b>'.$url.'</b><br>'; // Имя файла
$file_exp = explode(".", $_FILES["file"]["name"]);
if ($file_exp[1] != "csv") die("Неправильный формат файла."); // Допустимы файлы только с расширением csv
echo(setLocale(LC_ALL, NULL));
$handle = fopen("".$url, "r"); // Файл csv необходимо положить в папку tmp
while ($data = fgetcsv($handle, 0, ";")) {
$data[0] = iconv('windows-1251','utf-8',$data[0]); //перекодировка
$data[1] = iconv('windows-1251','utf-8',$data[1]); //перекодировка
$data[2] = iconv('windows-1251','utf-8',$data[2]); //перекодировка
$data[3] = iconv('windows-1251','utf-8',$data[3]); //перекодировка
echo "INSERT INTO Message57
(`Subdivision_ID`, `Sub_Class_ID`, `ItemID`, `Name`, `Price`, `GroupName`)
VALUE
('92', '61', '$data[0]', '$data[1]', '$data[2]', '$data[3]')";
$sql = mysql_query ("INSERT INTO Message57
(`Subdivision_ID`, `Sub_Class_ID`, `ItemID`, `Name`, `Price`, `GroupName`)
VALUE
('92', '61', '$data[0]', '$data[1]', '$data[2]', '$data[3]')"
);
}
echo "Загрузка прошла успешно!<br>"; // Всё что в запросе, меняем на свои данные
fclose ($handle);
// Ниже на экран выводятся спарсенные значения //
echo '<br><br><b>Все записи:</b><br>';
echo '<div style="font-size:10px">';
$row = 1;
$fp = fopen ("".$url,"r");
while ($data = fgetcsv ($fp, 1000, ";")) {
$num = count ($data);
print "<p> $num поля в линии $row: <br>";
$row++;
for ($c=0; $c < $num; $c++) {
print $data[$c] . "<br>";
}
}
fclose ($fp);
echo "</div>";
?>
|
не помагает! | |
|
|
|
|
|
|
|
для: emil116
(02.12.2011 в 19:16)
| | Может, кстати, и зря... у PHP нет поддержки UTF8 на уровне ядра, может стоить разобрать файл в однобайтовой кодировке, а уже потом на сервере после разбора преобразовать данные в UTF8 при помощи iconv(). | |
|
|
|
|
|
|
|
для: cheops
(02.12.2011 в 18:45)
| | Да, сначало сохраняю в экселе потом в нотпаде преобразовываю в utf-8 | |
|
|
|
|
|
|
|
для: emil116
(02.12.2011 в 17:36)
| | А csv-файл у вас тоже в формате UTF-8? | |
|
|
|
|
|
|
|
для: cheops
(02.12.2011 в 17:21)
| |

<?php
include "netcat/connect_io.php"; // Соединение с базой
header('Content-type: text/html; charset=utf-8');
if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8');
if(setlocale(LC_ALL, 0) == 'C') die('Не поддерживается ни одна из перечисленных локалей (ru_RU.utf8, en_US.utf8)');
$url = $_FILES["file"]["name"];
echo 'Запись из файла: <b>'.$url.'</b><br>'; // Имя файла
$file_exp = explode(".", $_FILES["file"]["name"]);
if ($file_exp[1] != "csv") die("Неправильный формат файла."); // Допустимы файлы только с расширением csv
echo(setLocale(LC_ALL, NULL));
$handle = fopen("".$url, "r"); // Файл csv необходимо положить в папку tmp
while ($data = fgetcsv($handle, 0, ";")) {
echo "INSERT INTO Message57
(`Subdivision_ID`, `Sub_Class_ID`, `ItemID`, `Name`, `Price`, `GroupName`)
VALUE
('92', '61', '$data[0]', '$data[1]', '$data[2]', '$data[3]')";
$sql = mysql_query ("INSERT INTO Message57
(`Subdivision_ID`, `Sub_Class_ID`, `ItemID`, `Name`, `Price`, `GroupName`)
VALUE
('92', '61', '$data[0]', '$data[1]', '$data[2]', '$data[3]')"
);
}
echo "Загрузка прошла успешно!<br>"; // Всё что в запросе, меняем на свои данные
fclose ($handle);
// Ниже на экран выводятся спарсенные значения //
echo '<br><br><b>Все записи:</b><br>';
echo '<div style="font-size:10px">';
$row = 1;
$fp = fopen ("".$url,"r");
while ($data = fgetcsv ($fp, 1000, ";")) {
$num = count ($data);
print "<p> $num поля в линии $row: <br>";
$row++;
for ($c=0; $c < $num; $c++) {
print $data[$c] . "<br>";
}
}
fclose ($fp);
echo "</div>";
?>
|
попробывал менть значение групп,
12В NARVA Лампы головного света так выводит,
Лампы головного света 12В NARVA так нет.
хотя все в кодировке utf-8 | |
|
|
|
|
|
|
|
для: emil116
(02.12.2011 в 17:12)
| | Возможно дело в локали, скорее всего у вас UNIX-сервер, который по умолчанию не выставляет русскую локаль, в отличие от Windows. Попробуйте выставить локаль при помощи функции setlocale(), уточните в службе тех.поддержки вашего сервера как выставить для него русскую локаль (параметры отличаются от сервера к серверу). | |
|
|
|
|
|
|
|
для: cheops
(02.12.2011 в 17:07)
| | выводит уже срезанные значения!
должно быть: Лампы головного света 12В NARVA
есть: 12В NARVA
fgetcsv ($fp, 0, ";") тоже самое.
в чем причина то может быть:( | |
|
|
|
|
|
|
|
для: emil116
(02.12.2011 в 17:02)
| | Ага значит дело в fgetcsv (), если исправить второй параметр в 0, ситуация не исправляется?
| |
|
|
|
|
|
|
|
для: cheops
(02.12.2011 в 16:46)
| | выводит уже срезанные значения! | |
|
|
| |
|