Помощник
|
Разбивание строки с помощью explode(), помогите построить таблицу |
Banderas
|
Сообщение
#1
|
||
|
|
||
|
|||
yury_mw |
3.1.2011, 20:58;
Ответить: yury_mw
Сообщение
#2
|
|
Banderas,
вы в последних темах специализируетесь на очепятках ;) $line = explode("\t", $otders[$i]); Ну и раз уж вы просите помочь построить таблицу — не забудьте в хтмл таблицу открыть и закрыть: [php]echo "<table>"; for ($i=0;$i<count($orders);$i++) { $line = explode("\t", $orders[$i]); echo "<tr align='center'> <td>$line[0]</td> <td>$line[1]</td> <td>$line[2]</td> <td>$line[3]</td> <td>$line[4]</td> </tr>"; } echo "</table>";[/php] Поблагодарили: (0) |
|
|
Banderas
|
Сообщение
#3
|
|
Спасибо! Я думал что в таком случае компилятор укажет на ошибку...
Вот почти весь код, без ХТМЛ вступлений [php]$header = array('Дата', 'Покрышки', 'Масла', 'Свечи', 'Сумма'); echo <<<HTML <table border='0' cellspacing='10'> <tr bgcolor='e7e7e7'> HTML; foreach($header as $key => $value) echo "<td>$value</td>"; echo "</tr>"; $D_ROOT = $_SERVER['DOCUMENT_ROOT']; $orders = file("$D_ROOT/../www/orders/orders.txt"); for ($i=0;$i<count($orders);$i++) { $line = explode("\t", $orders[$i]); for ($k=1;$k<4;$k++) $line[$k] = intval($line[$k]); echo "<tr>"; for ($j=0;$j<count($line);$j++) echo "<td>$line[$j]</td>"; echo "</tr>"; } echo "</table>";[/php] Для меня главное понять принцип работы функции explode(). Мое мнение: При $i=0 создается ЧИСЛОВОЙ массив $line, в котором ключ 0 => значение 01:44:46 31st, ключ 1 => 3, и так далее... Мы можем обратиться к любому элементу, из нулевого элемента массива $orders. Мы обращаемся к каждой... Потом $i=1 и все повторяется для следующего элемента массива (второй строки из файла), а предыдущие данные перезаписываются новыми. Правильно? |
|
|
matroskin8 |
3.1.2011, 21:39;
Ответить: matroskin8
Сообщение
#4
|
|
А почему не поставить нормальные ограничители в текстовом файле? Например, запятую вместо табуляции... и визуально воспринимается лучше и ошибок непредвиденных не будет при сохранении в различных редакторах.
|
|
|
matroskin8 |
3.1.2011, 21:50;
Ответить: matroskin8
Сообщение
#5
|
|
Banderas, Правильно. Файл считывается построчно в массив $orders. Каждый элемент этого массива - это 1 строка. Затем в цикле при помощи ф-ции explode() строка разбивается на элементы (они отделены друг от друга в исходной строке разделителем - сепаратором), эти элементы помещаются в массив $line и каждый элемент выводится в отдельной ячейке строки таблицы, а все элементы массива выводятся в отдельной строке таблицы. Затем следующий элемент массива $orders ($orders[1]) разбивается согласно разделителям, помещается в массив $line, затирая предыдущие данные там и вновь выводится строка таблицы, заполняемая элементами массива $line... цикл повторяется до конца массива $orders.
Поблагодарили: (0) |
|
|
Banderas
|
Сообщение
#6
|
|
А почему не поставить нормальные ограничители в текстовом файле? Например, запятую вместо табуляции... и визуально воспринимается лучше и ошибок непредвиденных не будет при сохранении в различных редакторах. Согласен, просто изначально в книге, по которой я учусь, предложили табуляцию, вот я и решил следовать примеру. Думаю лучше ставить разделитель такой как ||. Не думаю что он часто буде встречаться при заполнении "БД". Запатую предпочитаю не использовать, потому что может быть строка "адреса" в которой в 80% случаях есть запятая |
|
|
yury_mw |
3.1.2011, 22:18;
Ответить: yury_mw
Сообщение
#7
|
|
|
Banderas,
Спасибо! Я думал что в таком случае компилятор укажет на ошибку... Во-первых, на всякий случай, php — не компилируемый язык, а интерпретируемый. Т.е. выполняется по мере чтения интерпретатором файла с php-кодом до тех пор пока не встретится конец файла или ошибка. (В случае компилируемого языка генерируется исполнимый код, который затем выполняется). Во-вторых, ошибки в вашем коде нет, просто вы строкой с опечаткой, фактически создали новый пустой массив $otders[]. Поэтому интерпретатор php ни на какие ошибки указать не мог.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA! Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире |
11 | 2x2MediaLimited | 3299 | 18.4.2024, 4:22 автор: 2x2MediaLimited |
|
Проверка позиций сайтов в поисковых системах с помощью Positon.ru Мониторинг продвижения сайтов |
183 | Positon | 179804 | 12.4.2024, 8:32 автор: Positon |
|
WEB и SMM дизайн — решение ваших бизнес задач с помощью дизайна | 8 | justburger | 5342 | 6.7.2020, 9:18 автор: justburger |
|
Целевой трафик +30% за 4 месяца с помощью SEO продвижения у Хачатура - отзывы и кейсы в топике | 6 | Mikejones | 3461 | 9.7.2019, 10:47 автор: Mikejones |
|
Гарантированно привлечем от 1000 подписчиков за 1 месяц с помощью комплексного продвижения | 8 | masija_coke | 3221 | 1.1.2019, 0:59 автор: masija_coke |
Текстовая версия | Сейчас: 25.4.2024, 22:14 |