loadHTML($body); libxml_clear_errors(); $xpath = new DOMXPath($dom); $items = $xpath->query('//div[contains(@class, "home-painel__listagem-item")]'); if ($items->length === 0) break; foreach ($items as $item) { $vaga_node = $xpath->query('.//h2', $item); $cidade_node = $xpath->query('.//div[contains(@class,"subtitulos")]/span[2]', $item); $quantidade_node = $xpath->query('.//div[contains(@class,"descricao")]/span', $item); $vaga = $vaga_node->length ? trim($vaga_node[0]->textContent) : ''; $cidade = $cidade_node->length ? trim($cidade_node[0]->textContent) : ''; $quantidade = $quantidade_node->length ? trim($quantidade_node[0]->textContent) : ''; // Verifica se a vaga não está vazia antes de adicionar if (!empty($vaga) || !empty($cidade) || !empty($quantidade)) { $todas_vagas[] = [ 'vaga' => $vaga, 'cidade' => $cidade, 'quantidade' => $quantidade, ]; } } } // Se não houver vagas, retorna mensagem if (empty($todas_vagas)) { return '

Nenhuma vaga encontrada no momento.

'; } $output = '
'; $output .= ''; foreach ($todas_vagas as $vaga) { // Ignora linhas totalmente vazias (segunda verificação por segurança) if (empty(trim($vaga['vaga'])) && empty(trim($vaga['cidade'])) && empty(trim($vaga['quantidade']))) { continue; } $output .= sprintf( '', esc_html($vaga['vaga']), esc_html($vaga['cidade']), esc_html($vaga['quantidade']) ); } $output .= '
VagaCidadeQuantidade
%s %s %s
'; return $output; }