Visualizzazione risultati 1 fino 3 di 3

Discussione: Script getsource funziona solo su alcuni link

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito Script getsource funziona solo su alcuni link

    Dato che su mobile non c'è il view source (non sul mio lumia, almeno), ho fatto uno scriptino che sfrutto wordpress, e mi vedo i miei sorgenti.

    il problema è che, sia tramite file_get_contents che tramite curl, solo alcuni link rispondono a dovere, altri danno un output vuoto

    Ok:
    Codice:
    https://www.laltroweb.it/urlinfo/?url=http://it.altervista.org/
    Vuoto:
    Codice:
    https://www.laltroweb.it/urlinfo/?url=http://forum.it.altervista.org/
    Codice:
    https://www.laltroweb.it/urlinfo/?url=http://www.google.it/
    ... non so! magari mi porgo male al sito durante l'interrogazione? avete consigli da dare che di certo è una banalità ma proprio non riesco a sbloccare questa storia?

    grazie,
    S.N.
    Ultima modifica di darkwolf : 14-12-2016 alle ore 19.30.44 Motivo: aggiornati i link
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  2. #2
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Edit: ho ottenuto notevoli miglioramenti (ho anche doppiato la chiamata curl escludendo da una il body, dall'altra l'header ... così ottengo entrambi i dati)!

    Solo che... adesso continua a non funzionare, ad esempio, su forum.it.altervista.org (funziona google, youtube, e tanti altri che prima non funzionavano ed ho risolto semplicemente dichiarando uno useragent)

    Insomma, manca ancora qualcosina... e non so cosa! :/
    Ultima modifica di darkwolf : 12-12-2016 alle ore 21.20.11
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  3. #3
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Ok! Ce l'abbiam fatta (fatti una domanda e datti una risposta...) :P
    Il problema derivava da htmlentities o htmlspecialchars (usati per stampare i sorgenti nella pagina) e l'encoding diverso tra il forum di altervista e il mio wordpress.

    Quindi, per risolvere il problema "globalmente", mi toccava capire l'encoding di origine, e convertirlo - nel caso non lo fosse - in UTF-8, per poi aggiungere un
    Codice PHP:
    $body = curl_exec($cb);
    preg_match('/charset=([^\s\n\r]+)/i',curl_getinfo($cb, CURLINFO_CONTENT_TYPE), $bodycharset);
    $bodycharset['charset'] = isset($bodycharset[1]) ? $bodycharset[1] : '';
    if(isset(
    $bodycharset['charset']) && !empty($bodycharset['charset']) && $bodycharset['charset'] !== 'UTF-8')
    {
    $body = iconv($bodycharset['charset'], 'UTF-8', $body);
    }

    htmlspecialchars($string, ENT_COMPAT,'ISO-8859-1', true);
    // http://php.net/manual/en/function.htmlspecialchars.php#112476
    nello script (altrimenti specialchars stampa il nulla in caso di caratteri speciali.

    Insomma, chiediamo a curl di consegnarci il tutto in UTF-8 (come da pagina che conterrà il codice), e poi - però - lo stampiamo nella pagina come ISO-8859-1 (altrimenti si rischia di non ritrovarsi nessun output).

    Questo mi permette di vedere le accentate sia che richieda pagine UTF-8 (come il mio stesso blog), che ISO-* (come il forum di altervista), e persino di stampare il contenuto di un file binario (come un'immagine jpg)

    Insomma, un po' contorto, ma sembra funzionare a dovere
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •