[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выгрузка в CSV
Гость_Миша
Народ, подскажите, как правильно обработать знаки ; , при выгрузке.

Выгружаю с помощью функции fputcsv().

Пробовал изменять с помощью:
ereg_replace(";", "';'", $a);

Но всеравно происходит перенос в новую колонку



Спустя 29 минут, 38 секунд (25.06.2009 - 13:51) Sylex написал(а):
Гость_Миша
ты мудришь чето... не надо никакой замены делать... покажи участок кода и часть данных на примере

Спустя 10 минут, 7 секунд (25.06.2009 - 14:01) Гость_Миша написал(а):
PHP
<?php

 $a
[city]="Ярославль";
 
$a[glow]="1kE/4hL;027c706149f061b89bda84190eed526c";
$list = array (
    
$a[city].";"$a[glow]

);

$fp fopen('file.csv''w');

foreach (
$list as $line) {
    
fputcsv($fpsplit(','$line));
}

fclose($fp);


Уже перепробовал много разных вариантов.

Спустя 19 минут, 49 секунд (25.06.2009 - 14:21) gooder отдыхающий написал(а):
если используете fputcsv
то почему не используете fgetcsv?

Спустя 5 минут, 16 секунд (25.06.2009 - 14:26) Гость_Миша написал(а):
Я видимо что-то не знаю, но помоему fgetcsv получает данные из файла, а не сохраняет в файл.

Мне нужно корректно сохранить массив в файл, поэтому использую (fputcsv):

Спустя 4 минуты, 22 секунды (25.06.2009 - 14:31) waldicom написал(а):
Цитата
если используете fputcsv
то почему не используете fgetcsv?

Цитата
Я видимо что-то не знаю, но помоему fgetcsv получает данные из файла, а не сохраняет в файл.
Мне нужно корректно сохранить массив в файл, поэтому использую (fputcsv):

Не обращай внимание, человек видимо использует fgetcsv() при записи в файл, поэтому и советует всем делать также.
Кстати вопрос: если не получается с использование fputcsv(), почему бы просто не писать данные в файл и использованием обычной fwrite()?

Спустя 24 секунды (25.06.2009 - 14:31) gooder отдыхающий написал(а):
а, пардон, я про получение данных...

а что за перенос в новую колонку? можно увидеть это?

Спустя 4 минуты, 53 секунды (25.06.2009 - 14:36) Guest написал(а):
gooder

$a[glow]="1kE/4hL;027c706149f061b89bda84190eed526c";

Это значение массива, а конкретно знак ";" интерпретируется, как перенос в новую колонку

waldicom

Нужно писать в формате csv, Если потом переносить из любого формата в формат csv, то всеравно встретится эта проблема.



Спустя 4 минуты, 18 секунд (25.06.2009 - 14:40) waldicom написал(а):
Цитата
waldicom

Нужно писать в формате csv, Если потом переносить из любого формата в формат csv, то всеравно встретится эта проблема.

Я понимаю. Но видимо ты зациклился на fputcsv().
Ведь если ты будешь писать в файл примерно таким обращом, то все будет нормально.

Цитата
$a[city]="Ярославль";
$a[glow]="1kE/4hL;027c706149f061b89bda84190eed526c";
$list = array (
    $a[city].";". $a[glow]

);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fwrite(<первое значение>);   
    fwrite($fp, ';');   
    fwrite(<второе значение>);   
}

fclose($fp);


Спустя 15 минут, 25 секунд (25.06.2009 - 14:56) Гость_Миша написал(а):
Так знак ";" в любом случае отрежет

Попробуйте сами :


PHP
$fp fopen('file.csv''w');
fwrite($fp'Ярославль');
    
fwrite($fp';');
fwrite($fp'1kE/4hL;027c706149f061b89bda84190eed526c');
fclose($fp);


Спустя 1 минута, 9 секунд (25.06.2009 - 14:57) waldicom написал(а):
Ясно. Тогда выбиарйте другой символ в качестве разделителя. Наприме символ \t (это TAB). Любая программа поймет и такое.
Т.е. вместо
PHP
fwrite($fp';');

надо написать
PHP
fwrite($fp"\t");


Обратите внимание, что там двойные кавычки, а не одинарные.

Спустя 1 час, 4 минуты (25.06.2009 - 16:01) Guest написал(а):
Переписал по другому, ошибся в построении.
Вот решение:
PHP
$export[city]="Ярославль";
 
$export[glow]="1kE/4hL;027c706149f061b89bda84190eed526c";

 
$export_all[] = $export;


 
$file fopen('users_ex.csv''w+');
 foreach(
$export_all as $export_one)
 {
 
fputcsv($file$export_one";");
 }
 
fclose($file);

Спустя 30 минут, 6 секунд (25.06.2009 - 16:31) Sylex написал(а):
Код
Если запятая является частью значения, заключите значение в двойные кавычки ("...,...").
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.