extraindo texto plano de elementos com uma classe designada usando o php dom
extraindo texto de elementos html específicos é uma tarefa comum no desenvolvimento da web. O PHP DOM fornece ferramentas robustas para analisar HTML e acessar seu conteúdo. Este artigo atende a um requisito específico para extrair texto de elementos com uma classe nomeada em duas matrizes planas. Nomes de classe alternados, a tarefa é salvar o texto em duas matrizes: uma para títulos e outra para conteúdo. Por exemplo, dado o seguinte html:
capítulo 1
Este é o capítulo 1
precisamos obter a seguinte saída:$ heading = ['Capítulo 1', 'Capítulo 2', 'Capítulo 3']; $ content = ['Este é o capítulo 1', 'este é o capítulo 2', 'este é o capítulo 3'];
soluçãoChapter 1
This is chapter 1
$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3']; $content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
carrega o html em um objeto domdocument:
$ dom = new DomDocument (); $ dom-> loadHtml ($ test);
$dom = new DOMDocument(); $dom->loadHTML($test);
$xpath = new DOMXPath($dom);
itera através dos nós correspondentes e extrai seu conteúdo de texto.Chapter 1
This is chapter 1
Php função parsetoarray (domxpath $ xpath, string $ classe): Array { $ xpathQuery = "//*[@class = '$ class']"; $ elements = $ xpath-> consulta ($ xpathquery); $ resultArray = []; foreach ($ elements como $ element) { $ nós = $ element-> ChildNodes; foreach ($ nós como $ node) { $ resultArray [] = $ node-> nodEvalue; } } return $ resultArray; } $ test = capítulo 1
Este é o capítulo 1
capítulo 2
Este é o capítulo 2
capítulo 3
Este é o capítulo 3
Html; $ dom = new DomDocument (); $ dom-> loadHtml ($ test); $ xpath = new DomXPath ($ dom); $ Heading = Parsetoarray ($ XPath, 'Heading1-H'); $ content = parsetoarray ($ xpath, 'normal-h'); var_dump ($ cabeçalho); eco "Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3