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

    estrarre contenuto td e url presenti nel cdice di una pagina html

    gentile team ho un codice così composto

    codice HTML:
    <tr class="bot"><td>&nbsp;</td><td>macchina fotografica</td>
    <td>EUR 40,47</td>
    <td id="viewItemId"><a href="http://www.miosito2.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    <tr class="bot"><td>&nbsp;</td><td>macchina da cucire</td>
    <td>EUR 40,67</td>
    <td id="viewItemId"><a href="http://www.miosito.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    <tr class="bot"><td>&nbsp;</td><td>macchina fotografica</td>
    <td>EUR 40,17</td>
    <td id="viewItemId"><a href="http://www.miosito2.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    in pratica vorrei ottenere in risultato una cosa simile:
    macchina fotografica 2 presenti link
    macchina da cucire 1 presenti link

    grazie mille
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    allora:

    Codice PHP:
    <?php

    //funzione per caricare in qualche modo l'html che ti interessa parsare
    /**
     * @return \DOMDocument
     */
    function loadHTML($url)
    {

    //metodo fake, carico da file di testo. Te caricherai da url
    libxml_use_internal_errors(true); //sopprime i warning di validazione dell'html. vedi la documentazione
    $doc = new \DOMDocument();
    $doc->loadHTMLFile($url); //probabilmente caricherai da string

    return $doc;

    }

    $document loadHTML(__DIR__.'/test.htm');

    //parso l'html cercando le celle che ti interessano, ovvero quelle figlie di tr[class=bot]
    $xpath = new \DOMXpath($document);

    $righe $xpath->query('//tr[@class="bot"]');

    foreach(
    $righe as $riga)
    {
        foreach(
    $riga->childNodes as $cella)
        {
            echo 
    $cella->textContent;
        }
    }
    test.htm è:

    codice:
    <html>
    <head>
    <title>Un title</title>
    </head>
    <body>
    <span>un testo a caso</span>
    
    <div> altro testo <p> tra paragrafi</p></div>
    
    <table>
    <tr class="bot"><td>&nbsp;</td><td>macchina fotografica</td>
    <td>EUR 40,47</td>
    <td id="viewItemId"><a href="http://www.miosito2.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    <tr class="bot"><td>&nbsp;</td><td>macchina da cucire</td>
    <td>EUR 40,67</td>
    <td id="viewItemId"><a href="http://www.miosito.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    <tr class="bot"><td>&nbsp;</td><td>macchina fotografica</td>
    <td>EUR 40,17</td>
    <td id="viewItemId"><a href="http://www.miosito2.it/">Vai al link<b class="g-hdn">titolos</b></a></td><td>&nbsp;</td></tr>
    </table>
    </body>
    ovviamente, con la medesima logica invede di fare echo $cella->textContent; devi parsarti la cella con le funzionalità date da DOMElement/DOMNode/DOMXpath, ma ti rimando al manuale in merito
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.