ребята, привет
у меня такая задача
необходимо дописывать данные формы в файл csv, который должен постоянно дописываться (пополняться) данными
саму запись прикрутил так
$f = fopen('./assets/files/db.csv', 'a+');
fputs($f,date('d.m.Y:H.i').';'.$fields['csv']."\r\n");
все отлично работает, но проблема с кодировкой, так как уважаемый ms excel не любит кодировку utf-8
ему подавай 1251
версия движка: evo 1.0.12 UTF-8
хостинг reg.ru при как было уточнено у тех поддержки не поддерживает iconv
вот код сниппета
function attachCSV(&$fields){
// $cr = "\n";
$csv .=
csv($fields['name']).';'
.csv($fields['email']).';'
.csv($fields['tel']).';'
.$cr;
// set fields
// $fields['csv'] = mb_convert_encoding($fields['csv'] , "UTF-8", "windows-1251");
$fields['csv'] = $csv;
$string = $fields['csv'];
// $fields['registrationid'] = $registrationid;
return true;
}
function csv($value) {
if (strstr($value, ";") || strstr($value, "\n") || strstr($value, "\r")) {
return "" . str_replace("\"", "\"\"", $value) . "";
} else {
return "".$value."";
}
}
function utf2win ($string) {
$utf = array( "/\xD0\xB0/", "/\xD0\xB1/", "/\xD0\xB2/", "/\xD0\xB3/",
"/\xD0\xB4/", "/\xD0\xB5/", "/\xD1\x91/", "/\xD0\xB6/",
"/\xD0\xB7/", "/\xD0\xB8/", "/\xD0\xB9/", "/\xD0\xBA/",
"/\xD0\xBB/", "/\xD0\xBC/", "/\xD0\xBD/", "/\xD0\xBE/",
"/\xD0\xBF/", "/\xD1\x80/", "/\xD1\x81/", "/\xD1\x82/",
"/\xD1\x83/", "/\xD1\x84/", "/\xD1\x85/", "/\xD1\x86/",
"/\xD1\x87/", "/\xD1\x88/", "/\xD1\x89/", "/\xD1\x8A/",
"/\xD1\x8B/", "/\xD1\x8C/", "/\xD1\x8D/", "/\xD1\x8E/",
"/\xD1\x8F/", "/\xD0\x90/", "/\xD0\x91/", "/\xD0\x92/",
"/\xD0\x93/", "/\xD0\x94/", "/\xD0\x95/", "/\xD0\x81/",
"/\xD0\x96/", "/\xD0\x97/", "/\xD0\x98/", "/\xD0\x99/",
"/\xD0\x9A/", "/\xD0\x9B/", "/\xD0\x9C/", "/\xD0\x9D/",
"/\xD0\x9E/", "/\xD0\x9F/", "/\xD0\xA0/", "/\xD0\xA1/",
"/\xD0\xA2/", "/\xD0\xA3/", "/\xD0\xA4/", "/\xD0\xA5/",
"/\xD0\xA6/", "/\xD0\xA7/", "/\xD0\xA8/", "/\xD0\xA9/",
"/\xD0\xAA/", "/\xD0\xAB/", "/\xD0\xAC/", "/\xD0\xAD/",
"/\xD0\xAE/", "/\xD0\xAF/");
$win = array( "\xE0","\xE1",
"\xE2","\xE3","\xE4","\xE5","\xB8","\xE6","\xE7","\xE8",
"\xE9","\xEA","\xEB","\xEC","\xED","\xEE","\xEF","\xF0",
"\xF1","\xF2","\xF3","\xF4","\xF5","\xF6","\xF7","\xF8",
"\xF9","\xFA","\xFB","\xFC","\xFD","\xFE","\xFF","\xC0",
"\xC1","\xC2","\xC3","\xC4","\xC5","\xA8","\xC6","\xC7",
"\xC8","\xC9","\xCA","\xCB","\xCC","\xCD","\xCE","\xCF",
"\xD0","\xD1","\xD2","\xD3","\xD4","\xD5","\xD6","\xD7",
"\xD8","\xD9","\xDA","\xDB","\xDC","\xDD","\xDE","\xDF");
return preg_replace($utf, $win, $string);
}
функция была взята отсюда
http://www.rsdn.ru/forum/web/479239.all
подскажите, как прикрутить перекодирование данных с формы из utf-8 в 1251
в php не силен
заранее спасибо