Прервать foreach, добавить строку и продолжить цикл
Столкнулся с интересной задачей. При парсинге пагинации с другого сайта, парсятся только ссылки, из-за чего в пагинации пропадает страница, на которой находишься, так как это не ссылка, а блочный элемент. Нагуглил, что foreach можно прервать и продолжить, но какое задать условие для его продолжения, я не понял. Может есть другие способы?
Вот код:
foreach ($html->find('.paginator a') as $pagination) {
echo '<a href="/'.$pagination->plaintext.'">'.$pagination->plaintext.'</a>';
if ($pagination->plaintext == '') {
break;
echo '<span class="pagination-current">'.$_GET['page'].'</span>';
}
}
Да и то, что я понаписал - не работает. Первая часть пагинации не отображается.
Ответы (1 шт):
Вам достаточно расширить ваш цикл, добавив, чтобы он находил и блочный элемент, а внутри цикла уже проверяйте ссылка это ли текущая страница: $html->find('.paginator a, .pagination-current') - так в цикл будут включены все классы .paginator a и .pagination-current