#php #html
#php #HTML
Вопрос:
У меня есть экспортированная история Skype, которая была преобразована в HTML.
У меня есть 20 000 элементов списка < li> с разным количеством html между каждым.
Единственное, что это в обратном порядке, каков наилучший способ поменять его местами — т.Е. Сделать первый < li> и все его содержимое последним, а последний — первым?
Решение на php? или есть более простой способ с конкретным программным обеспечением. Решение CSS не идеально.
Если это будет ввод в виде html
<li>stuff in here</li>
<li><div>MORE stuff in here</div></li>
<li><span class = "test">yet even more stuff in here</span></li>
это будет результат в формате html — сохраненный в виде файла
<li><span class = "test">yet even more stuff in here</span></li>
<li><div>MORE stuff in here</div></li>
<li>stuff in here</li>
их всего 20 000
Комментарии:
1. Пожалуйста, добавьте пример ввода и ожидаемый результат. является ли это текстовой строкой?
2. Да, но помещать 20 000 элементов списка в массив? Я не уверен, как это возможно или возможно ли это.
3. Почему вы думаете, что решение CSS не идеально? Если вы не используете AJAX для получения списка из 20 000 записей по частям, то CSS отлично сработал здесь, как
@Mehedi Hasan Siam
и отвечал.4. Это действительно вопрос php?
5. Я должен был сказать, что решение CSS не работает. Вывод абсолютно должен быть в порядке, без изменений CSS, поскольку он переходит в электронную книгу.
Ответ №1:
- Разделите списки на массив
- Измените порядок
- Выведите обратный список
$input = <<<_HTML
<li>stuff in here</li>
<li><div>MORE stuff in here</div></li>
<li><span class ="test">yet even more stuff in here</span></li>
_HTML;
$list = [];
preg_match_all('~<li>(.*?)</li>~', $input, $list);
$list = array_reverse($list[0]);
foreach($list as $item)
echo $item, PHP_EOL;
Результаты
<li><span class ="test">yet even more stuff in here</span></li>
<li><div>MORE stuff in here</div></li>
<li>stuff in here</li>
Комментарии:
1. Большое спасибо, очень элегантное решение, которое проделало большую тяжелую работу! Приветствия!
Ответ №2:
Вы можете перейти к HTML, чтобы получить желаемую цель
У вас должен быть тип списка порядка. Если это <ul>
так, вы можете пойти на это
ul {
transform: rotate(180deg);
}
ul > li {
transform: rotate(-180deg);
}
<ul>
<li>stuff in here</li>
<li><div>MORE stuff in here</div></li>
<li><span class = "test">yet even more stuff in here</span></li>
</ul>
если у вас есть <ol>
, вы можете пойти на это
ol {
display: flex;
flex-direction: column-reverse;
list-style: none
}
<ol>
<li>stuff in here</li>
<li><div>MORE stuff in here</div></li>
<li><span class = "test">yet even more stuff in here</span></li>
</ol>
Комментарии:
1. Это такая классная идея, которую я бы не придумал сам. Вы можете сделать это с помощью flex также через
{ display: flex; flex-direction: row-reverse; }
.2. Это будет превращено в электронную книгу, не просматриваемую через браузер — мне нужно, чтобы код был таким, какой он есть, не обрабатывался CSS, поэтому он не идеален
3. Кстати, это лучший способ отображать элементы в обратном порядке (я буду использовать этот трюк в своих проектах).
4. @Tomate boss если у вас есть HTML, это означает, что он может быть интегрирован с помощью CSS. Вы также можете использовать PHP, но вы должны изменить код, иначе нет возможности
5. Извините, Мехеди, вы, кажется, не поняли мой первоначальный вопрос. У меня есть огромное количество HTML, которые необходимо изменить и представить в виде html, чтобы их можно было импортировать в другие приложения, А НЕ манипулировать ими после факта.