Экспорт бд laravel

94
01 января 2020, 14:00

Всем привет. Моя проблема в том что когда я экспортирую бд. Вся кириллица слетает Мой контроллер

public function export2()
{
    $table = Order_products::all();
    $filename = "test2.csv";
    $handle = fopen($filename, 'w+');
    fputcsv($handle, array('sep=,'));
    fputcsv($handle, array('name','phone'));
    foreach($table as $row) {
        fputcsv($handle, array($row['name'], $row['description'], $row['staticprice']));
    }
    fclose($handle);
    $headers = array(
        'Content-Type' => 'text/csv',
    );
    return Response::download($filename, 'test.csv', $headers);
}

Помогите, плиз

Answer 1

Эксель на windows понимает только кодировку windows-1251, следовательно вам необходимо конвертировать все ваши строки:

замените

fputcsv($handle, array($row['name'], $row['description'], $row['staticprice']));

на

fputcsv($handle, array(iconv('utf-8', 'windows-1251', $row['name']), iconv('utf-8', 'windows-1251', $row['description']), iconv('utf-8', 'windows-1251', $row['staticprice'])));
Answer 2
fprintf($handle, chr(0xEF).chr(0xBB).chr(0xBF));

Добавьте эту строку после fopen()

READ ALSO
Как найти всех предков без внуков?

Как найти всех предков без внуков?

знаю, что формулировка вопроса звучит странно, но не смог по-другому

110
Laravel и elasticsearch

Laravel и elasticsearch

Пытаюсь разобраться, но пока без результатовНужды моего поиска сводятся к тому, чтобы находить товары по их имени

130
multimap замена operator[] для доступа к элементу

multimap замена operator[] для доступа к элементу

Судя по документации на multimap отсутствует доступ к элементам через оператор[] или at, в отличие от mapЕсть ли какая замена для доступа к нужному...

137
Ошибка при перегрузке операторов + и = C++

Ошибка при перегрузке операторов + и = C++

Я написал класс Vector и перегрузил для него операторы = и +Код ниже почему-то приводит к аварийному завершению, хотя и выводит правильный результат

116