• User Newbie

    Parsing

    Salve a tutti ho un piccolo problema nel completare questo parser che ho realizzato: avrei bisogno di ripere tutte le occorrenze trovate dato il link.
    Per adesso se mando in esecuzione lo script mi viene estrapolato solo il primo risultato della pagina mentre io vorrei vedere l'elenco completo dei risultati. Purtroppo non ho ancora capito bene come applicare i cicli for e foreach. Naturalmente ho dovuto modificare i link per poter postare.

    [PHP]<?php
    $url= "paginegialle.it/naviga/000198600-5/adesivi.html";
    $html = file_get_contents($url);

    /*************** div che contiene tutti i contatti ***************/

    $contenuto1 = explode("<div class="cx-content">", $html);
    $contenuto2 = explode("<img src="geoip".".paginegialle.it/ip?dv=" width="1" height="1" style="display:none"/>", $contenuto1[1]);
    $contenuto3 = $contenuto2[0];
    $contenuto4 = $contenuto3;

    /******************conteggio dei risultati ottenuti ****************************/
    $risultati_trovati0 = explode("<span class="orange">", $contenuto4);
    $risultati_trovati1 = explode("</span>", $risultati_trovati0[1]);
    /*ceil arrotonda un numero */
    $pagine_risultati = ceil($risultati_trovati1[0]/10);

    /*************** div che contiene il nome dell' azienda ***************/
    $titolo1 = explode("<h3 class="org orange">", $contenuto4);
    $titolo2 = explode("</h3>", $titolo1[1]);
    $titolo3 = $titolo2[0];
    $titolo4 = strip_tags($titolo3);

    /*************** div che contiene il link al nome dell' azienda ***************/

    $titolo5 = explode("<h3 class="org orange">", $contenuto4);
    $titolo6 = explode("</h3>", $titolo5[1]);
    $titolo7 = $titolo6[0];
    $titolo8 = $titolo7;

    /*************** div che contiene il codice postale dell' azienda ***************/

    $cap0 = explode("<span class="postal-code">", $contenuto4);
    $cap1 = explode("</span>", $cap0[1]);
    $cap2 = $cap1[0];
    $cap3 = $cap2;

    /*************** div che contiene il nome città ***************/

    $citta0 = explode("<span class="locality">", $contenuto4);
    $citta1 = explode("</span>", $citta0[1]);
    $citta2 = $citta1[0];
    $citta3 = $citta2;

    /*************** div che contiene il nome della provincia ***************/

    $provincia0 = explode("<span class="region">(", $contenuto4);
    $provincia1 = explode(")", $provincia0[1]);
    $provincia2 = $provincia1[0];
    $provincia3 = $provincia2;

    /*************** div che contiene il numero civico ***************/

    $civico0 = explode("<p class="street-address">", $contenuto4);
    $civico1 = explode(",", $civico0[1]);
    $civico2 = $civico1[0];
    $civico3 = $civico2;

    /*************** div che contiene l' indirizzo ***************/

    $indirizzo0 = explode("<p class="street-address">", $contenuto4);
    $indirizzo1 = explode("</p>", $indirizzo0[1]);
    $indirizzo2 = $indirizzo1[0];
    $indirizzo3 = $indirizzo2;

    /*************** div che contiene il numero di telefono ***************/

    $telefono0 = explode("<span class="type">tel: </span>", $contenuto4);
    $telefono1 = explode("</p>", $telefono0[1]);
    $telefono2 = $telefono1[0];
    $telefono3 = $telefono2;

    /*************** div che contiene il numero di fax ***************/

    $fax0 = explode("<span class="type">fax: </span>", $contenuto4);
    $fax1 = explode("</p>", $fax0[1]);
    $fax2 = $fax1[0];
    $fax3 = $fax2;

    /*************** div che contiene la latitudine ***************/

    $lat0 = explode("<span class="latitude">", $contenuto4);
    $lat1 = explode("</span>", $lat0[1]);
    $lat2 = $lat1[0];
    $lat3 = $lat2;

    /*************** div che contiene la longitudine ***************/

    $lon0 = explode("<span class="longitude">", $contenuto4);
    $lon1 = explode("</span>", $lon0[1]);
    $lon2 = $lon1[0];
    $lon3 = $lon2;

    echo "<table width="100%" border="1">
    <tr>
    <td width="380" align="center">link sheda pagine gialle</td>
    <td width="180" align="center">nome azienda</td>
    <td width="180" align="center">cap</td>
    <td width="180" align="center">citta</td>
    <td width="180" align="center">provincia</td>
    <td width="180" align="center">civico</td>
    <td width="180" align="center">via</td>
    <td width="180" align="center">telefono</td>
    <td width="180" align="center">fax</td>
    <td width="180" align="center">latitudine</td>
    <td width="180" align="center">longitudine</td>
    <td width="180" align="center">email</td>
    </tr>
    <tr>
    <td align="center">".$titolo7."</td>
    <td align="center">".$titolo4."</td>
    <td align="center">".$cap3."</td>
    <td align="center">".$citta3."</td>
    <td align="center">".$provincia3."</td>
    <td align="center">".$civico3."</td>
    <td align="center">".$indirizzo3."</td>
    <td align="center">".$telefono3."</td>
    <td align="center">".$fax3."</td>
    <td align="center">".$lat3."</td>
    <td align="center">".$lon3."</td>
    <td> </td>
    </tr>
    </table>"

    ?>[/PHP]


  • Consiglio Direttivo

    Ciao tecvis,
    per poter ottenere quel che vuoi fare molto dipendente anche dal contenuto del file che ottieni, l'ideale potrebbe essere salvare le varie righe in un array, magari usando file().

    A questo punto ti intercetti gli array che ti servono e cicli i risultati estrapolando quello che ti serve.

    Spero che almeno possa servirti da traccia. 😉

    A presto. :ciauz: