Консультация № 136160
10.05.2008, 09:24
0.00 руб.
0 3 3
Здравствуйте. У меня есть один вопрос. Как можно прочитать текстовый файл где перечислены значения через запятую и чтобы они отображались в виде таблицы

Приложение:
1,034023,1,2008/05/07,10:25:281,0708416206,1,2008/05/07,10:25:531,0708416206,1,2008/05/07,10:26:001,0708416206,1,2008/05/07,10:26:021,034023,1,2008/05/07,10:26:09

Обсуждение

Неизвестный
10.05.2008, 13:43
общий
это ответ
Здравствуйте, CoolBick!
Делаем примерно так: читаем файл в массив(если он небольшой), потом заменяем запятые на теги разграничения столбцов.


Приложение:
$file=file(‘1.txt‘); if ($file) { print ‘<table>‘; foreach ($file as $string) { print ‘<TR><TD>‘ . str_replace(‘,‘,‘</TD><TD>‘,$string) . ‘</TD></TR>‘; } print ‘</table>‘; }
Неизвестный
12.05.2008, 08:57
общий
это ответ
Здравствуйте, CoolBick!
примерно так
$fn = ‘адрес файла‘;
if (file_exists($fn)){
$f = file($fn);
$n = count($f);
for ($i=0;$i<$n;$i++){
$tmp = explode(‘,‘,$f[$i]); // в массиве строка разбитая по запятым
// естественно если нужно для ячеек свои настройки,
// то следующие 3 строки переделать
echo ‘<tr><td>‘;
echo implode(‘</td><td>‘,$tmp);
echo ‘</td></tr>‘;
}
} else {
действие при отсутствии файла
}
Неизвестный
12.05.2008, 16:48
общий
это ответ
Здравствуйте, CoolBick!

В мануале по PHP вроде все четко и ясно написано :)
-------------------------------------------------------------------------
fgetcsv
(PHP 4, PHP 5)

fgetcsv — Читает строку из файла и производит разбор данных CSV

Описание
array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle
Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen(), или fsockopen().
length (Необязательный)
Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). Он стал необязательным в PHP 5. Если этот аргумент не указан (или равен 0 в версиях PHP 5.0.4 и выше), максимальная длинна строки не ограничена, но функция работает немного медленнее.
delimiter (Необязательный)
Устанавливает разделитель поля (только один символ). По умолчанию это запятая.
enclosure (Необязательный)
Устанавливает символ ограничителя поля (только один символ). По умолчанию это двойная кавычка. Добавлен в PHP 4.3.0.

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Функция fgetcsv() возвращает FALSE в случае ошибки, а также по достижению конца файла.

Замечание: Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.
Пример 577. Чтение и вывод на экран содержания CSV-файла

<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num полей в строке $row:
</p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "
\n";
}
}
fclose($handle);
?>
Форма ответа