Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Estrazione numeri da tabella

    Salve.
    Ho una pagina che mi riceve il codice html di un'altra pagina.
    Dentro l'HTML c'è la parte che mi interessa ed è cosi:
    codice:
        <tr>
          <td width="15%"><font size='5'><span id='65'>44</span></font></td>
          <td width="15%"><font size='5'><span id='65'>47</span></font></td>
          <td width="14%"><font size='5'><span id='65'>39</span></font></td>
          <td width="15%"><font size='5'><span id='65'>4</span></font></td>
          <td width="17%"><font size='5'><span id='65'>63</span></font></td>
        </tr>
    Ovviamente è solo un pezzo. I numeri 44, 47, 39, 4, 63 sono variabili...
    Io dovrei estrarre solo quei numeri...
    Come posso fare?
    Grazie mille

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Codice PHP:
    $pattern "/id='65'>(.*?)</span>/";
    $html file_get_contents("pagina.html"); //o come vuoi, ma la variabile deve contenere il codice da cui vuoi recuperare i dati
    preg_match_all($pattern,$html,$match);

    foreach(
    $match as $value)
        echo 
    $value[1]."
    "


  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non è un html corretto hai degli elementi con lo stesso id

  4. #4
    Originariamente inviato da Alhazred
    Codice PHP:
    $pattern "/id='65'>(.*?)</span>/";
    $html file_get_contents("pagina.html"); //o come vuoi, ma la variabile deve contenere il codice da cui vuoi recuperare i dati
    preg_match_all($pattern,$html,$match);

    foreach(
    $match as $value)
        echo 
    $value[1]."
    "

    Non restituisce niente purtroppo.
    Praticamente. All'inizio io ho questo:
    codice:
    <tr>
    
          <td width="25%"><font face="Comic Sans MS" size="5" color="#800000">Cagliari</font></td>
    
          <td width="15%"><font face="Comic Sans MS" size="5" color="#800000">44</font></td>
    
          <td width="15%"><font face="Comic Sans MS" size="5" color="#800000">47</font></td>
    
          <td width="14%"><font face="Comic Sans MS" size="5" color="#800000">39</font></td>
    
          <td width="15%"><font face="Comic Sans MS" size="5" color="#800000">4</font></td>
    
          <td width="17%"><font face="Comic Sans MS" size="5" color="#800000">63</font></td>
    
        </tr>
    e uso questo codice php:
    codice:
    <?php
    $sorgente = file_get_contents("pagina.html"); //contiene il codice sopra...
    
    $str5 = "<font face='Comic Sans MS' size='5' color='#800000'>";
    $passo1 = str_replace('"',"'",$sorgente); //sostituisco le " con '
    $array = explode($str5,$passo1); //vedo quanti ce ne sono di valori cosi
    
    for($x = 1; $x<=count($array); $x++)
    {
        $str1 = "<font face='Comic Sans MS' size='5' color='#800000'>";
        $str2 = "<font face='Comic Sans MS' size='5' color='#800000'><span id='$x'>";
        $str3 = "</font>[/b]</td>";
        $str4 = "</span></font>[/b]</td>";
        $passo2 = str_replace($str1,$str2,$passo1);
        $passo3 = str_replace($str3,$str4,$passo2);
    }
    //il problema è che "id" mi da sempre 65... che è il numero che da count($array)
    //il pezzo di html che c'è sopra è solo una parte
    
    
    $pattern = "/id='65'>(.*?)</span>/"; 
    preg_match_all($pattern,$passo3,$match); 
    foreach($match as $value) 
        echo $value[1]."
    ";
    ?>
    COme faccio?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non funziona perché il codice che hai postato nel secondo post è diverso dal primo.
    Cambia così
    $pattern = '/color="#800000">(.*?)</font>/';

  6. #6
    codice:
    <?php
    $sorgente = file_get_contents("pagina.html");
    
    $pattern = '/color="#800000">(.*?)</font>/';
    preg_match_all($pattern,$sorgente,$match); 
    
    foreach($match as $value) 
        echo $value[1]."
    ";
    ?>
    Niente

  7. #7
    Allora in qualche modo sono arrivato ad avere nome della ruota e numeri tutti a capo.

    Potete vedere esempio e sorgente qui: http://getpaidtwo.com/recupera.php

    Ora però, in ogni elemento c'è:
    codice:
    <div id=0>35</div>
    Io avrei fatto questo: un str_replace dentro un for che sostituisce ogni riga l'id con il contatore del for.
    Cosi:
    codice:
    $nume = 1;
    for($x=0; $x<63; $x++)
    {
         $finale = str_replace('<font face="Comic Sans MS" size="5" color="#800000">',"<div id=$x>",$sorgente, $nume);
    }
    Il problema è che come vedete in quella pagina, è sempre zero. Ho messo anche $nume per far in modo che ogni ciclo sostituisca solo una volta ma niente.
    Cosa faccio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.