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

  • Автор темы Gospodarka
  • 27
  • Обновлено
  • 18, May 2024
  • #1
У меня есть скрипт, который создает файл CSV из файла xls. Но мне нужно избавиться от кавычек и десятичных знаков, а также заменить разделитель на ;

Оригинал: 5.67710К,"1,00" 5.72160К,"-1,00" 5.75800К,"2,00" 5.81240К,"0,00" очищено: 5,67710К;1 5,72160К;-1 5,75800К;2 5,81240К;0 Как это сделать? Код, который очищает пустые строки ниже. Что туда добавить?
 

if (false !== ($ih = fopen($input, 'r'))) {

$oh = fopen($output, 'w');

while (false !== ($data = fgetcsv($ih, 80000, ","))) {

if ($data[2] != NULL and $data[6] != NULL) {

$outputData = array($data[2], $data[6]);

fputcsv($oh, $outputData);

}

}

fclose($ih);

fclose($oh);

}

PHP:

Gospodarka


Рег
05 Aug, 2010

Тем
1

Постов
2

Баллов
12
  • 04, Jun 2024
  • #2
Я думаю, ты мог бы использовать подрезать()

для двойных кавычек, затем просто объедините строки с помощью взорваться()

? И поскольку полученная строка больше не является допустимой строкой CSV, fputcsv() не будет правильным.
 

sharkboy


Рег
12 Sep, 2012

Тем
1

Постов
3

Баллов
13
  • 08, Jun 2024
  • #3
@hdewantara прав, что fputcsv — неправильная функция, потому что то, что вам нужно для результата, НЕ является CSV! Просто напишите его, поставив точку с запятой и \r\n в конце.
 

if ($ih = fopen($input, 'r')) {

$oh = fopen($output, 'w');

while ($data = fgetcsv($ih, 65528)) {

if (

array_key_exists(2, $data) &&

array_key_exists(6, $data) &&

!empty($data[2]) &&

!empty($data[6])

) fwrite($oh, $data[2] . ';' . (int) $data[6] . "\r\n");

}

fclose($ih);

fclose($oh);

}

Код (разметка): -- редактировать -- ох, и не надо так сильно ерундовать по поводу буквальных логических сравнений.

Пустая трата кода.

запятая является разделителем по умолчанию, и я бы ОЧЕНЬ беспокоился, если бы в вашем CSV были отдельные строки, которые нарушают отметку размера указателя 64 КБ минус 64 бита.

не проверяйте значение null, поскольку доступ будет недействительным.

и все равно выдал ошибку (это не JavaScript), поэтому существуют «array_key_exists» и «пустой», и вы должны использовать логический « & & », а не более высокий приоритет «и»
 

appolonovka


Рег
10 Dec, 2012

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно