Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: окончания строк  (Прочитано 7500 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chuda
Гость
« : 17-03-2009 06:50 » 

Есть такая конструкция:
Код:
		$fp = fopen ($_FILES['order_file']['tmp_name'],"r");
while ($data = fgetcsv ($fp, 2048, ",")) {

Суть её в том, что читается файл csv.
Всё нормально до тех пор, пока не попадается файл csv с окончаниями строк \r
Такого рода окончания вообще не воспринимаются функцией fgetcsv.
Как можно исправить ситуацию с минимальными изменениями?
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 17-03-2009 07:05 » 

Код:
     (while ($data = fgetcsv ($fp, 2048, ",")) !== false) {

и включить auto-detect-line-endings
« Последнее редактирование: 17-03-2009 07:09 от McZim » Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 17-03-2009 07:11 » 

я отказался от fgetcsv
Код:
$fhandle = fopen("my_file.csv","r");
  if ($fhandle)
  {
  while (!feof($fhandle))
  {
   $buffer = fgets($fhandle, 1024);
   $buffer = trim($buffer);
   $buffer = str_replace(chr(10),"",$buffer);
   $buffer = str_replace(chr(13),"",$buffer);
   if ($buffer != "" )
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #3 : 17-03-2009 07:11 » 

будет что то типа
Код:
<?php
ini_set
(&#39;auto_detect_line_endings&#39;,TRUE);
$handle fopen(&#39;/path/to/file&#39;,&#39;r&#39;);
while ( ($data fgetcsv($handle) ) !== FALSE ) {
//process
}
ini_set(&#39;auto_detect_line_endings&#39;,FALSE);
?>

Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Chuda
Гость
« Ответ #4 : 17-03-2009 07:39 » 

McZim, спасибо.
auto_detect_line_endings — как раз то, что нужно.
Работает на первый взгляд исправно, исправлений — ровно одна строка.
Ещё потестирую, конечно…
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #5 : 17-03-2009 08:03 » 

Шильгия, всегда пожалуйста
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines