У меня есть довольно большой стол, который я положил на страницу с PHP вызоваPHP прибегнув ТР в таблице по классам
<?php include('7c2dsf12c24-4441e-532ded8-88dsc7-4fsd2c8.txt'); ?>
Этот файл имеет тысячи ТР и ТД в пределах. Текстовый файл динамически создается и обновляется каждые пару часов.
Некоторые из рядов имеют класс «featuredRow», что помогает при стилизации. Однако они отображаются в случайном порядке в этом текстовом файле.
Мне нужно отсортировать их так, чтобы выделенные строки были первыми. В основном возьмите все строки и поместите все featuredRows в верхнюю часть таблицы, а затем все остальные строки.
У меня уже есть код javascript, который сортирует таблицу по-разному в алфавитном порядке, но так как его сортировка по интерфейсу и таблица состоит из тысяч tr (текстовый файл имеет 7 Мб текста), это довольно напряженный в Internet Explorer, если я должен был сначала его отфильтровать (пользователь ожидает долго ждать, когда переупорядочивает всю таблицу в альпапатическом режиме, но он не должен ждать 30 секунд, пока все не будет упорядочено правильно (всего 2-3 секунды на хроме 20-30 секунд на IE)).
Поэтому я решил, что делать это на бэкэнде и отображать переупорядоченный текстовый файл сразу было бы лучше, вместо использования dom, создавать огромные массивы и выходить из браузера пользователя.
TL/DR В качестве примера, структура файла выглядит как что-то вроде этого:
<tr><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr><td></td><td></td></tr>
Мне нужно принять этот файл и изменить порядок структуру этого:
<tr class="featuredRow"><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr class="featuredRow"><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
И я не хотят использовать JS, так как есть тысячи строк, мегабайт данных, и это займет много времени на IE, чтобы сделать это на интерфейсе.
Что является самым простым способом заставить его работать на PHP?
Спасибо
P.S. Вот как HTML/PHP выглядит сейчас - jsfiddle.net/1pggwuah
Вот еще одна ссылка о том, как два ТРС текстового файла выглядит так (есть около 3000-4000 тех ТРС в текстовом файле) jsfiddle.net/a308w8b6
Вы можете использовать классы DOM, чтобы прочитать html и отсортировать его. Другой способ сделать это будет с XSLT. –
Ваш файл содержит ** только ** '
Он содержит только
ответ
Demo: https://ideone.com/bITopF
источник
2016-03-12 02:23:52
Вы действительно думаете, что sort() может сортировать по «в каких строках содержат« class = »featuredRow» и сохранить его в теге
@hanshenrik это зависит. Мы ждем ответа OP. t знать содержимое файла – fusion3k
Предполагая, что образец, который он показывает, является истинным образцом данных да. То есть: (1) у нас есть новые строки после каждого tr, (2) есть только trs. –
EDIT: исходный код будет поставить "featuredRow" 'ы на дне, а не сверху, извините, установил его сейчас (используйте InsertBefore вместо Append)
источник
2016-03-12 02:21:26 hanshenrik
Спасибо за это, но я получаю следующую ошибку: function getElementsByTagName() на не-объекте в /home/usxjobs/public_html/wp-content/themes/Divi-Child/page-template-job-filter.php в строке 83 – Romtim
Я обновил исходное сообщение со ссылками на примеры структуры в конце ее. – Romtim
Смежные вопросы