Obtenir paraules d'avui del Paraulògic - (Informàtica, PHP)

Inspeccionem el codi font de la web

Inspeccionem el codi font de la web

Per a trobar les paraules inspeccionem el codi de la web del Paraulògic (Ctrl + u) des d’un PC, des de mòbil afegint a l’URL «viewsource» debant de tot seguit de dos punts (ex: viewsource:https://www.vilaweb.cat/paraulogic/)

Un cop dins del codi busquem «var t={» (que es troba més aviat cap al final del codi).

Aquell objecte conte el paràmetre «l» amb les lletres del dia actual i el paràmetre «p» amb les paraules del dia actual.

Veure codi

Codi PHP per extreure-les

function get_paraulogic_today() {
    $dades = new stdClass();

    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'https://www.vilaweb.cat/paraulogic/',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'GET',
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    
    $dom = new DomDocument();
    @$dom->loadHTML($response);
   
    $dades->dades = get_dades_paraulogic_today($dom);
    if ($dades->dades->success) $dades->success = true;
    else $dades->success = false;
    return $dades;
    exit;
}

function get_dades_paraulogic_today($dom) {
    $dades = new stdClass();
    if (is_null($dom) || empty($dom) || !isset($dom)) {
        return array('success' => false, "msg" => "Ho sentim, no s'han trobat dades.");exit;
    }

    
    $paraulogic_y = explode("var y=",$dom->textContent);
    $paraulogic_t = explode("var t=",$paraulogic_y[1]);
    
    $break_all = explode('"use strict";',$paraulogic_y[1]);
    $paraulogic_t = explode('"use strict";',$paraulogic_t[1]);

    $dades->success = true;
    $paraules_avui = get_paraules_paraulogic($paraulogic_t[0]);
    $dades->avui = $paraules_avui;
    return $dades;
}

function get_paraules_paraulogic($json) {
    $paraules = explode(',"p":',$json);
    $resultats = "";
    foreach ($paraules as $key => $p) {
        
        if (strpos($p,'{"l":') !== false) {
            $lletres = str_replace('{"l":[','',$p);
            $lletres = str_replace(']','',$lletres);
        } else {
            $pars = explode('"},',$p);
            $resultats = explode(' {"',$pars[0]);  
            $resultats = explode('{',$resultats[0]);  
        }
    
    }

    $res = new stdClass();
    $res->lletres = $lletres;
    $res->paraules = formater_paraules_paraulogic($resultats[1] . '"');
    return $res;
}

function formater_paraules_paraulogic($paraules) {
    $resultats = array();
    $par = array();
    $arrParaula = explode(",", $paraules);
    foreach ($arrParaula as $key => $paraula) {
        $par[$key] = explode(': "',$paraula);
        $resultats[] = str_replace('"','',$par[$key][1]);
    }
    return $resultats;
}

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *