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

    Estrapolare testo da una pagina web e verificare se esiste un determinato valore

    Ciao a tutti, ho estrapolato il titolo di una pagina web come segue, ma non riesco a verificare se un determinato valore esiste o meno nella pagina.. Il codice che ho usato è:

    codice:
    <?php
    $sorgente = file_get_contents("http://www.microsoft.com/it-it/default.aspx"); 
    
    
    if (eregi('<title>(.+)</title>',$sorgente,$regs))
        echo $regs[1];
    
    
    $parola = "Italia";
    echo (strpos($parola, $regs[1])===TRUE) ? 'No' : 'Si' ;
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Prima cosa: usa preg_match() e non eregi() che è deprecata.

    Prova così
    Codice PHP:
    if (preg_match('/<title>(.+)<\/title>/',$sorgente,$regs))
        echo 
    $regs[1]."<br />";


    $parola "Italia";
    echo (
    strpos($parola$regs[1]) !== FALSE) ? 'Si' 'No' 

  3. #3
    Grazie per la dritta, funziona tutto, ma con quei siti il cui protocollo è https, ottengo questi errori:


    Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in

    Warning: file_get_contents(): Failed to enable crypto in

    Warning: file_get_contents(): failed to open stream: operation failed


    Nel frattempo sono andato avanti cercando una soluzione ma non trovo granchè..

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Dipende dalle impostazioni del server, evidentemente https non è nell'elenco degli wrapper consentiti.
    Se hai accesso alle impostazioni del server puoi rimediare, altrimeni non puoi farci niente e devi provare ad usare cURL invece di file_get_contents().

    Per informazioni puoi leggere qui.

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Dipende dalle impostazioni del server, evidentemente https non è nell'elenco degli wrapper consentiti.
    Se hai accesso alle impostazioni del server puoi rimediare, altrimeni non puoi farci niente e devi provare ad usare cURL invece di file_get_contents().
    Ma il problema è sul server da cui parte la richiesta o su quello che la riceve?

    Chiedo perchè di punto in bianco mi è uscito lo stesso Warning da uno script che ha sempre fatto il suo dovere

    codice:
    Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in...
    Errare humanum est, perseverare ovest

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da carlo2002 Visualizza il messaggio
    Ma il problema è sul server da cui parte la richiesta o su quello che la riceve?
    Da quello di partenza.

  7. #7
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    il codice funziona bene (http e https), verifica le impostazione del file php.ini sul server dove avvii lo script.

    extension=php_openssl.dll
    allow_url_fopen = On


    codice:
    $sorgente = file_get_contents("https://www.html.it"); 
    
    if (preg_match('/<title>(.+)<\/title>/',$sorgente,$regs))
        echo $regs[1]."<br />";
        
    $title = strtolower($regs[1]);
    $parola = "italia";
    
    echo (strpos($title,$parola) !== FALSE) ? 'Si' : 'No' ;
    Ultima modifica di ninja72; 30-05-2020 a 22:38

  8. #8
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    allow_url_fopen è su On

    open SSL sembra a posto (in immagine)
    Immagini allegate Immagini allegate
    Errare humanum est, perseverare ovest

  9. #9
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Tutto ha funzionato per un mesetto di test in cui la pagina è stata visualizzata circa 200 volte, poi ho annunciato al pubblico e ci sono state 1.500 visualizzazioni in due giorni.
    Non è che ci possono essere delle limitazioni? Lo script gira su Aruba.
    Errare humanum est, perseverare ovest

  10. #10
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    prova a verificare i log del server https://guide.hosting.aruba.it/hosti...og-errori.aspx
    magari riesci a capire meglio da cosa dipende.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.