CSV/TSV-формат и PHP
Я люблю Excel - править огромные таблицы, быстро анализировать данные в нём одно удовольствие. Для того, чтобы обработанные данные передать в приложения на CakePHP, я просто копирую всё в буфер и вставляю в textarea. Чтобы разбирать информацию оттуда, я использую
-
$rows = tsv_array($this->data['ModelName']['textarea_field']);
А вот и сама функция для разбора TSV.
-
/**
-
* Convert TSV to array
-
*
-
* @param string $s TSV
-
* @param bool/array $keys
-
* false - don't modify headers
-
* true - use first row as headers
-
* array - use it as headers
-
* @return array
-
*/
-
function tsv_array($s, $keys=false, $delimiter="\t") {
-
-
$min = null;
-
$max = null;
-
foreach ($rows as &$row) {
-
-
if ($min===null || $count<$min) {
-
$min = $count;
-
}
-
if ($max===null || $count>$max) {
-
$max = $count;
-
}
-
}
-
if ($max!=$min) {
-
foreach ($rows as &$row) {
-
$row[] = false;
-
}
-
}
-
}
-
-
if (!$keys) return $rows;
-
-
if ($keys===true) {
-
}
-
-
$result = a();
-
foreach ($rows as $row) {
-
$item = a();
-
for ($i=0; $i<count($row); $i++) {
-
-
$item[$keys[$i]] = $row[$i];
-
}
-
$result[] = $item;
-
}
-
-
return $result;
-
}
Для понимания CSV надо просто передавать другой $delimiter. Функция специально упрощена - по правильному надо ещё проверять на обрамление двойными кавычками - тогда допускается перенос строки внутри значений.
Может подскажешь, что нужно для использования(обработки, импорта) CSV файлов? Я имею ввиду какие модули или расширения php или perl должны быть установлены на хостинге
Чтобы использовать функцию, описанную в этом посте - нужен только PHP.
Есть база данных в виде кучи скачанных PHP-файлов. Возможно всё это объединить в Excel? За работу заплачу.
Есть база данных в виде кучи скачанных PHP-файлов. Можно всё это объединить в Excel? За работу заплачу.