Извините, если это может быть простой вопрос, я раньше не работал с базами данных с плоским файлом и нашел это довольно неинтуитивным.Чтение и новая база данных с плоскими файлами с разделителями (многомерная)
У меня есть плоский файл, вкладка \t
и \n
новой строки с разделителями базы данных как таковой:
Sebastian Ingrosso Kidsos (Wippenberg Mix) 2F32829628 Electro
Avicii Silhouettes 2F47987574 House
(две строки только для образца). Я хочу, чтобы иметь возможность итерации по каждой строке, инкапсулировать каждый элемент, разделенный символом табуляции \t
внутри тега span
, а затем перейти к следующей строке, предпочтительно инкапсулировать каждую новую строку в элементе <li>
.
я это, чтобы начать с, который не добавляет пролеты или Ли:
function display_tracklist($max) {
$db = fopen('db/db.txt', 'r');
$row = 0;
while (($tracks = fgetcsv($db, "\n")) !== FALSE) {
if ($max > count($tracks)) {
$max = count($tracks);
}
$row++;
for ($index=0; $index < $max; $index++) {
echo "<li>" . $tracks[$index] . "</li>";
}
}
fclose($db);
}
Что такое лучший способ справиться с этой задачей? Обычно я бы сделал это с помощью базы данных SQL, делающей вещи намного более интуитивными, но это не вариант. Я думал о вложенных петлях foreach и т. Д. Пока не повезло.
Конечный результат должен быть: <li><span>Sebastian Ingrosso</span> <span>Kidsos (Wippenberg Mix)</span> <span>2F32829628</span> <span>Electro</span></li> <li><span>Avicii</span> <span>Silhouettes</span> <span>2F32829628</span> <span>House</span></li>
т.д.
[fget_csv] (http://www.php.net/manual/en/function.fgetcsv.php) не подходит для вас? – mkaatman
Я предполагаю, что это похоже на то, что я сделал с помощью 'expode', мог бы сделать еще один цикл для решения второго измерения. – wnajar