Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: fgetcsv и сохранение изменений

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
igor3333
Отправлено: 10 Сентября, 2015 - 20:43:57
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Здравствуйте!
Подскажите почему файл несохраняется с изменениями?
Открываю файл и редактирую нем столбец (проверял - через echo - редактирует как надо _ НО вот файл сохраняет исходный):
PHP:
скопировать код в буфер обмена
  1. $handle = fopen($_POST['PRICES']['price_file2'], "r+");
  2. while (($data = fgetcsv($handle, 0, $templ[0]['SEP'] )) !== FALSE) {
  3.    $num = count($data);
  4.  
  5.     for ($c=0; $c < $num; $c++) {
  6.        
  7.        if($c==$keyss){ $data[$keyss] = LINKGRAART::ReplaceArt($data[$keyss],"SHORT");}
  8.        
  9.     }
  10. }
  11. fclose($handle);
 
 Top
Мелкий Супермодератор
Отправлено: 10 Сентября, 2015 - 21:49:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А в каком месте вы что-то записываете?

Помимо неизвестного метода LINKGRAART::ReplaceArt, этот код только читает.


-----
PostgreSQL DBA
 
 Top
igor3333
Отправлено: 10 Сентября, 2015 - 21:58:59
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




$data[$keyss] это получается 3 столбец csv , а функция LINKGRAART::ReplaceArt($data[$keyss],"SHORT"); - это обычный preg_replace/

Тоесть присваиваю $data[$keyss] его же только очишеный , м так пробежав весь толбец закрываю файл , а оно несохраняет
 
 Top
Мелкий Супермодератор
Отправлено: 10 Сентября, 2015 - 22:09:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ещё раз. В каком месте вы вообще что-то пишете в файл? Представленный код ничего не пишет, только читает.


-----
PostgreSQL DBA
 
 Top
igor3333
Отправлено: 11 Сентября, 2015 - 13:46:16
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Выдираю строку $data и в цикде for поучаю свой 3 номер массив , и так для каждой строки - тоесть в итоге прохожу весь 3-й столбец (чисчу preg_replace его) - а вот как сохранить или перезаписать изменения вот это вопрос?

Получается я открыл на чтение и запись , но просто взял данные и обработал но неполоржил на место?
 
 Top
Мелкий Супермодератор
Отправлено: 11 Сентября, 2015 - 13:51:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




igor3333 пишет:
Получается я открыл на чтение и запись , но просто взял данные и обработал но неполоржил на место?

Именно.


-----
PostgreSQL DBA
 
 Top
Panoptik
Отправлено: 11 Сентября, 2015 - 15:37:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




лучше всего открыть 2 файлдескриптора. один на чтение, один на запись и после успешной записи заменить последним исходный. к примеру

PHP:
скопировать код в буфер обмена
  1.  
  2. $srcFp = fopen('source.csv', 'r');
  3. $dstFp = fopen('dest.csv', 'w');
  4.  
  5. while(($srcRow = fgetcsv($srcFp)) !== FALSE) {
  6.  
  7.      // делаете что-то с данными
  8.    
  9.      fputcsv($dstFp, $srcRow);
  10. }
  11. fclose($srcFp);
  12. fclose($dstFp);
  13.  
  14. rename('dest.csv', 'source.csv');
  15.  


-----
Just do it
 
 Top
igor3333
Отправлено: 11 Сентября, 2015 - 16:15:13
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Понял спасибки! Улыбка
И временый файл мона делете еще .
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB