Чтение файла?

emdfreeman

Новичок
Чтение файла?

Как прочесть файлик с такими данными?

25|50|100|250|500|1000|
3|5|7|10|15|25|
250|500|1000|2500|5000|10000|

При том, что может быть и не 6 столбиков (может и больше, и меньше)!
Вообщем надо как то сделать, чтоб создавалась таблица на хтмл, в первом столбике писался первый столбик всех рядов и так далее, столбиков неизвестно, сколько будет и рядков тоже неизвестно!
Как это сделать? Кто может помочь?
 

Vladson

Сильнобухер
Зависит от файла, если меньше мегабайта то всё просто, считаешь ряды и столбики потом отображаешь таблицу с учётом максимального количества столбиков и рядов и.т.д (далее всё просто)
 

emdfreeman

Новичок
та файл то весить будет не больше 20 - 60 кб! Только у меня что то не получается........учусь только.......
 

Фанат

oncle terrible
Команда форума
emdfreeman
тебе такие понятия программирования, как массив и цикл - известны? если да, то воспользуйся функциями, что дал sage. Первая прочтёт файл в массив, вторая - сделает массив из твоей строки. Если нет - я дам ссылку на небольшой учебник, который поясняет эти вещи
 

SelenIT

IT-лунатик :)
если число "столбиков" постоянно во всех строках, то может помочь [m]fgetcsv[/m]
 

Фанат

oncle terrible
Команда форума
SelenIT
если число столбиков постоянно, то проще воспользоваться file_get_contents и двумя str_replace =)
 

emdfreeman

Новичок
Столбиков будет полюбому одинокого, а вот рядков неизвестно!

1|0|25|3|25|0|0|0|0|1|0|+|-|
2|0|50|3|25|0|1|0|2|1|0|+|+|
3|0|75|3|25|0|0|0|0|1|0|+|-|

С file и explode все понятно, а вот с циклами(while) не могу разобраться, что можете посоветовать? Может хоть маленький примерчик плиз? В мануале почитал посмотрел, но не все понял с моим примером.

while (HELP ME) {
etc.
}

HELP ME - Что тут надо в моёй ситуации?
 

CCCP_MOCKBA

Новичок
а что у тебя есть ?
$i = 1;
while ($i <= 10) {
print $i++; /* будет печататься значение
$i до инкремента
(пост-инкремент) */
}
 

Фанат

oncle terrible
Команда форума
это значит, что у него обычный файл с разделителями.
не парься.
это просто он так описывает обычный файл с разделителями.
 

emdfreeman

Новичок
Смотрите у меня файл с названием 1.dat с таким содержанием:

1|2|3|4|5|6|7|8|9|10|
10|20|30|40|50|60|70|80|90|100|
11|21|31|41|51|61|71|81|91|111|

нужно вывести все это таблицей, как тут http://exclipt.org.ua/test.htm
 

CCCP_MOCKBA

Новичок
PHP:
<?php
$dataArr = file('1.dat');
print '<table border="1" cellSpacing="0" cellPadding="4" width="100%"><tr>';
getData($dataArr);
print '</tr></table>';

function getData($dataArr,$separator='|') {
  foreach ($dataArr as $value) {
    if (strpos($value,$separator)) {
      $value = explode($separator,$value);
    }
    if (is_array($value)) {
      print '</tr><tr>';
      getData($value);
    } else {
      print '<td>'.$value.'</td>';
    }
  }
}
?>
 

SelenIT

IT-лунатик :)
Вот какой монстр в одну фактическую строку (на основе идеи Фаната) получился у меня:
PHP:
echo '<table border="1"><tr><td>' . str_replace(
      array("|\r\n", "|\n", "|\r", '|'), // первые 3 элемента - разный перевод строки в разных ОС
      array('</td></tr><tr><td>', '</td></tr><tr><td>', '</td></tr><tr><td>', '</td><td>'),
      substr(trim(file_get_contents(1.dat)),0,-1) // отбрасываем последнюю "палку", чтоб не было пустой ячейки в конце
   )  .  '</td></tr></table>';
 

emdfreeman

Новичок
Большое спасибо, чуть-чуть не так таблица выводится, но буду уже сам разбираться.

СПАСИБО!
 
Сверху