1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Colocar resultado da Query DOMXPath em array para banco Mysql

Amigos,

Consegui avançar bem no código, mas preciso de uma ajudinha de vocês para continuar.

Preciso importar em um banco Mysql o resultado dos jogos do brasileirão de forma automática, buscando os dados na página da CBF.

Abaixo o trecho HTML da página da CBF com os resultados:

<table class="table table-striped table-condensed visible-print" style="font-size: 9px">
    <tbody>
     <tr>
        <th class="text-center">Jogo</th>
        <th class="text-center">Rodada</th>
        <th class="text-center">Data</th>
        <th class="text-right">Mandante</th>
        <th class="text-center"></th>
        <th class="text-left">Visitante</th>
        <th class="text-left">Estádio</th>
        <th></th>
    </tr>
    <tr>
        <td class="text-center">1</td>
        <td class="text-center">1</td>
        <td class="text-center">14/05/2017 - 11:00</td>
        <td class="text-right">Fluminense - RJ</td>
        <td class="text-center">3 x 2</td>
        <td class="text-left">Santos - SP</td>
        <td class="text-left">Maracanã - Rio de Janeiro - RJ</td>
        <td></td>
    </tr>
    <tr>
        <td class="text-center">2</td>
        <td class="text-center">1</td>
        <td class="text-center">13/05/2017 - 16:00</td>
        <td class="text-right">Flamengo - RJ</td>
        <td class="text-center">1 x 1</td>
        <td class="text-left">Atlético - MG</td>
        <td class="text-left">Maracanã - Rio de Janeiro - RJ</td>
        <td></td>
    </tr>
        .
        .
        .
    </tbody>
</table>

O código PHP:

 <?php
        $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
        $WebSite = 'http://www.cbf.com.br/competicoes/brasileiro-serie-a/tabela';
        $DOMDocument->formatOutput = true;
        $DOMDocument->preserveWhiteSpace = false;
        @$DOMDocument->loadHTML( file_get_contents( $WebSite ) );

        $DOMXPath = new DOMXPath( $DOMDocument );
        foreach( $DOMXPath->query( '//table' ) as $Nodes ){
                 foreach( $Nodes->childNodes as $Node ){
                          $Data[] = utf8_decode( preg_replace( '/\s/', NUll, $Node->nodeValue ) );
                 }
        }


        echo '<pre>';
        print_r( array_filter( $Data ) );
?>

Resultado:

Array
(
    [0] => JogoRodadaDataMandanteVisitanteEstádio
    [1] => 1114/05/2017-11:00Fluminense-RJ3x2Santos-SPMaracanã-RiodeJaneiro-RJ
    [2] => 2113/05/2017-16:00Flamengo-RJ1x1Atlético-MGMaracanã-RiodeJaneiro-RJ
    [3] => 3114/05/2017-16:00Palmeiras-SP4x0VascodaGama-RJAllianzParque-SaoPaulo-SP
    [4] => 4113/05/2017-19:00Corinthians-SP1x1Chapecoense-SCArenaCorinthians-SaoPaulo-SP
    [5] => 5114/05/2017-16:00Cruzeiro-MG1x0SãoPaulo-SPMineirão-BeloHorizonte-MG
   .
   . 
   .
)

O que gostaria que ficasse:

Array
(
   [0]
      (
        [Jogo] => 1
        [Rodada] => 1 
        [Data] => 14/05/2017 11:00
        [Mandante] => Fluminense - RJ
        [Placar] => 3x2
        [Visitante] => Santos - SP
        [Estadio] => Maracanã - Rio de Janeiro - RJ
    .
    .
    .
   )
)

Gostaria também:

*Selecionar especificamente esta tabela: "table class="table table-striped table-condensed visible-print" style="font-size: 9px", mas não estou conseguindo filtrando pela classe. Do jeito que está o código ele seleciona a partir da table e tudo abaixo dela.

*Não remover todos os espaços, do jeito que está fica "Maracanã-RiodeJaneiro-RJ"

Após isso, farei um loop para percorrer o Array e importar os dados no mysql.

Abraço!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php arrays ou faça a sua própria pergunta.