Образовалась такая проблема:
при создании сайта на php (задание такое было) образовалась проблема при экспорте данных из форм ввода в csv файл.
Т.е. сама проблема возникает тогда, когда открываешь этот файл в exel и там вместо русских букв появляется что-то типо этого "авоаомм РІРёРІРё"
А нужно, чтобы данные вбивались в нужной кодировке.
Помощь нужна в указании места, куда нужно вставить iconv() (На сколько понял - это для конвертирования из 1 кодировки в другую). Потому что так и не смог понять куда правильно.
Если надо, то ниже представлен код. Заранее спасибо!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<?php
/**
* Класс для работы с csv-файлами
*/
class CSV {
private $_receivedData = null;
/**
* param string $receivedData - путь до csv-файла
*/
public function __construct($receivedData) {
if (file_exists($receivedData)) { //Если файл существует
$this->_receivedData = $receivedData; //Записываем путь к файлу в переменную
}
//else { //Если файл не найден то вызываем исключение
// throw new Exception("Файл "$receivedData" не найден");
//}
}
public function setCSV(Array $csv) {
//Открываем csv для до-записи,
//если указать w, то ифнормация которая была в csv будет затерта
$handle = fopen($this->_receivedData, "w");
foreach ($csv as $value) { //Проходим массив
//Записываем, 3-ий параметр - разделитель поля
fputcsv($handle, explode(";", $value), ";");
}
fclose($handle); //Закрываем
}
/**
* Метод для чтения из csv-файла. Возвращает массив с данными из csv
* return array;
*/
public function getCSV() {
$handle = fopen($this->_receivedData, "r"); //Открываем csv для чтения
$array_line_full = array(); //Массив будет хранить данные из csv
//Проходим весь csv-файл, и читаем построчно. 3-ий параметр разделитель поля
while (($line = fgetcsv($handle, 0, ";")) !== FALSE) {
$array_line_full[] = $line; //Записываем строчки в массив
}
fclose($handle); //Закрываем файл
return $array_line_full; //Возвращаем прочтенные данные
}
}
$fld_INN = $_GET['fld_INN'];
$fld_ADRESS = $_GET['fld_ADRESS'];
$fld_AREA = $_GET['fld_AREA'];
$fld_SUM = $_GET['fld_SUM'];
$fld_DATE = $_GET['fld_DATE'];
try {
$csv = new CSV("receivedData.csv"); //Открываем наш csv
/**
* Чтение из CSV (и вывод на экран в красивом виде)
*/
/**
* Запись новой информации в CSV
*/
$arr = array($fld_INN .";". $fld_ADRESS .";". $fld_AREA .";". $fld_SUM .";". $fld_DATE);
$csv->setCSV($arr);
$get_csv = $csv->getCSV();
foreach ($get_csv as $value)
{ //Проходим по строкам
echo "ИНН индивидуального предпринимателя: " . $value[0] . "<br/>";
echo "Адрес торгового объекта: " . $value[1] . "<br/>";
echo "Площадь торгового объекта: " . $value[2] . "<br/>";
echo "Сумма уплаченного сбора: " . $value[3] . "<br/>";
echo "Дата осуществления платежа: " . $value[4] . "<br/>";
echo "<hr><a href=receivedData.csv>Скачать файл</a>";
}
}
catch (Exception $e) { //Если csv файл не существует, выводим сообщение
echo "Ошибка: " . $e->getMessage();
}
?>