Anonymous
И ты на них нажимаешь
Anonymous
и выходит сообщение
Anonymous
ваш голос учтен
Evgeniy
ну ахуеть у тебя даже тз нет
Anonymous
а голос залетает в бд
Evgeniy
тебя даже на фрилансе пошлют
Anonymous
Anonymous
сиди дальше тухни
Evgeniy
с такой формулировкой)
Владислав
Так, понятно. А как пользователь отвечает на опрос? Клацает на форму? Тогда я тебе уже всё написал выше. Берёшь из массива соотв. значение по ключу и отображаешь пользователю.
Anonymous
твоего мнения никто не спрашивал
Anonymous
Anonymous
просто на картинку тыкнул и все
Anonymous
Anonymous
Этот т3 спрашивает
Anonymous
Я не заказ пришел делать
Evgeniy
Anonymous
а поинтересоваться
Владислав
за советом пришол
Пришёл за советом и начал хамить. Тебе тут никто ничего не должен.
Anonymous
Anonymous
Anonymous
плам
Anonymous
о боже
Anonymous
Anonymous
Не люблю когда вмешиваются
Anatoli
Привет. Если массив записывать так: $arr = array("текст",)
то всё, что дальше работает (перекодировка из utf8 в windows-1251, потом запись в csv (в файле вокруг текста двойные кавычки), норамльно открывается в excel, считывается, перекодируется обратно, показывается в браузере.). А если так:
$a = "текст";
$arr = array($a);
то в файле уже кавычек нет, в excel всё ещё открывается, обратно не считывается.
Вопрос как записать в массив переменную $a = "текст"; так, как если бы она была записана сразу как $arr = array("текст",) ?
Anonymous
По нимаю стоящее бы предложил
Владислав
В общем, я тебе написал, как делать
Владислав
Действуй.
Evgeniy
Привет. Если массив записывать так: $arr = array("текст",)
то всё, что дальше работает (перекодировка из utf8 в windows-1251, потом запись в csv (в файле вокруг текста двойные кавычки), норамльно открывается в excel, считывается, перекодируется обратно, показывается в браузере.). А если так:
$a = "текст";
$arr = array($a);
то в файле уже кавычек нет, в excel всё ещё открывается, обратно не считывается.
Вопрос как записать в массив переменную $a = "текст"; так, как если бы она была записана сразу как $arr = array("текст",) ?
$a = "\"текст\""
Anatoli
Evgeniy
слэши для спец символов
Anonymous
...
Sergey
Привет. Если массив записывать так: $arr = array("текст",)
то всё, что дальше работает (перекодировка из utf8 в windows-1251, потом запись в csv (в файле вокруг текста двойные кавычки), норамльно открывается в excel, считывается, перекодируется обратно, показывается в браузере.). А если так:
$a = "текст";
$arr = array($a);
то в файле уже кавычек нет, в excel всё ещё открывается, обратно не считывается.
Вопрос как записать в массив переменную $a = "текст"; так, как если бы она была записана сразу как $arr = array("текст",) ?
нет, такого не может быть
Anatoli
$a = "\"текст\""
Не совсем так объяснил. Само слово текст нигде не прописывается, оно уже содержится в переменной $a
Я всяко пробовал с кавычками и как и с вашим вариантом в принципе работает, но в файле аж тройные кавычки появляются.
Я вот так пробовал '\"'.$a.'\"'
Anatoli
Откопал класс для работы с CSV, запись в файл производится с помощью fputcsv($handle, $csv, ";"); где $csv как раз массив.
Evgeniy
что в массивы до записи?
Evgeniy
запись через fputcsv это правильно
Anatoli
нет, такого не может быть
В примере было так: $arr = array("текст","123",);
В файле это выглядит так: "текст";123то есть текст в кавычках, число без. В Excel нет кавычек в ячейках.
Теперь пробую вместо текста использовать переменные. В $a хранится название какое-то, в $b число. Я пишу
$arr = array($a,$b,);
теперь в файле Тест;123
в excel так-же нет кавычек
Может дело в том, что файл в кодировке windows-1251, а php скрипт в utf8 без BOM. и он не может воспринять кириллицу, если она не в кавычках.
Anatoli
Если кавычки присоединить конкатенацией, то в файле они становятся тройными
Evgeniy
http://php.net/manual/ru/function.fputcsv.php
Evgeniy
начни с простого убери пока магический класс
Evgeniy
возьми массив свой
Evgeniy
и запиши его через fputcsv
Evgeniy
и покажи что получил
Evgeniy
и что ожидаешь получить
Evgeniy
типо есть
["test", 123"];
Записал получил
test;123
Ожидаю
"test";123
Evgeniy
или как, что именно не рабоатет?
Anatoli
или как, что именно не рабоатет?
Пробую без класса что-то составить. пока не готово. Не работает получение данных обратно, если они кириллицей написаны.
Evgeniy
читать обратно http://php.net/manual/ru/function.fgetcsv.php
Anatoli
Вот такой код написал https://gist.github.com/anonymous/78a1115ba57c8e3df756b5ed81e7f660
Запись латиницей и кириллицей.
В результате get команды:
2 полей в строке 1:
test
123
2 полей в строке 2:
456
Anatoli
Если руками в csv обернуть кириллицу в кавычки, то get срабатывает правильно.
Evgeniy
ты прочитать не можешь или записать?
Evgeniy
в чтение там есть опции символ разделителя и тд
Evgeniy
черным по белому написано
Evgeniy
http://php.net/manual/ru/function.fputcsv.php
Anatoli
Прочитать не могу. разделитель ";". Не понял, для чего нужен enclosure. Устанавливаю '"' и в put и в get и по-отдельности, ничего не меняется.
Evgeniy
прочитай про формат csv
Evgeniy
что значит разделитель
Evgeniy
он разделяет колонки
Evgeniy
что значит escape символ он экранирует специ символы
Evgeniy
например пробелы
Evgeniy
посмотри в каком формате у тебя фаил сохранен
Evgeniy
и прочитай его
Evgeniy
сохрани через fputcsv
Evgeniy
и прочитай через fgetcsv
Evgeniy
если у тебя импорт из экселя
Evgeniy
то зависит от года
Evgeniy
в разных версиях он по разному csv сохраняет
Evgeniy
с разными символами разделителя и escape
Evgeniy
и в разной кодировке!!!!!!
Evgeniy
значит прочитав данные из файла возможно их придется преобразовать
Anatoli
Я его создал из php, смотрю в notepad на наличие кавычек, потому что вокруг них завязана проблема. В notepad кодировка utf8 без BOM, как у php скрипта. Или как-то иначе нужно узнавать кодировку?