Visualizzazione risultati 1 fino 7 di 7

Discussione: problemi in remoto con curl

  1. #1
    Guest

    Predefinito problemi in remoto con curl

    ciao a tutti.
    Ho una pagina che utilizza le funzioni curl per connettersi ad un sito e prelevarne il contenuto.Tutto funziona in locale ma una volta uppato non mi restituisce più nulla.Ho allargato la possibilità del servizio Server to Server e con un port scanner ho controllato che la porta 80 fosse aperta(in realtà sia l'80 che la 443 mi risultano aperte aperte).Sapete indirizzarmi verso la soluzione?
    grazie grazie

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    A cosa stai tentando di collegarti?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    alla pagina di dettaglio spedizione dhl, ad es http://www.dhl.com/content/g0/en/exp...90006931%0D%0A
    la funzione che utilizzo è la seguente
    Codice PHP:
    function getWebPage( $url ){
    /**
    * Qui settiamo le opzioni base, in caso ci fosse bisogno di post si può usare:
    * CURLOPT_POST => 1, //Diciamo a curl che vogliamo usare il post.
    * CURLOPT_POSTFIELDS => 'parametro1=ciao //impostiamo i field di post
    **/
    $options = array(
    CURLOPT_RETURNTRANSFER => true, // ritorna la pagina
    CURLOPT_HEADER => false, // non ritornare l'header
    CURLOPT_REFERER => $url, // settiamo il referer
    CURLOPT_FOLLOWLOCATION => true, // seguiamo i redirects
    CURLOPT_ENCODING => "", // tutti gli encodings
    CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0", // L'identità del browser
    CURLOPT_AUTOREFERER => true, // setta il referer nel redirect
    CURLOPT_CONNECTTIMEOUT => 120, // timeout sulla connessione
    CURLOPT_TIMEOUT => 120, // timeout sulla risposta
    CURLOPT_MAXREDIRS => 10, // fermati dopo il decimo redirect
    );

    $ch = curl_init( $url ); // impostiamo l'url per il download (inizializza una sessione curl)
    curl_setopt_array( $ch, $options ); //settiamo le opzioni
    $content = curl_exec( $ch ); //facciamo richiesta della pagina
    $err = curl_errno( $ch );
    $errmsg = curl_error( $ch );
    $header = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno'] = $err; //eventuali errori
    $header['errmsg'] = $errmsg; //header
    $header['content'] = $content; //il contenuto della pagina quello che ci interessa

    return $header['content'];
    }

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ho provato il tuo codice con l'url che hai indicato e mi ha restituito la pagina. Che errore ti restituisce?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    nessun errore,non mi restituisce i dati.Uso le regex per manipolarli,ma se la regex è giusta in locale dovrebbe funzionare anche in remoto,a meno che non mi sfugga qualcosa...
    Codice PHP:
    include 'xml_post.php';
    $html1=getWebPage('http://www.dhl.com/content/g0/en/express/tracking.shtml?brand=DHL&AWB='.$stringa.'%0D%0A');

    $regexp="/Origin Service Area:.*href='#'>([^-].*[^-]-[^<]+)?<\/a>.+Destination service area.+\"destinationURL4\" href='#'>([^-].*[^-]-[^<]+)?<\/a>(.+)document.getElementById\(\"summarystatus\"\).title = \"([^-;]+)\";/is";
    if(
    preg_match_all($regexp,$html1,$result)){
    $regexp2="/(>(\w+, \w+ \d+, \d+\s+)<\/th>\s+<th scope=\"col\" axis=\"length\" style=\"width: \d+% ;text-align:left\s*\">Location<\/th>\s+<th scope=\"col\" axis=\"length\" style=\"width: \d+%\s*;text-align:left\s*\">Time<\/th>\s+<th scope=\"col\" axis=\"length\" class=\"lastChild\" style=\"width: \d+% ;text-align:left\">&nbsp;<\/th>\s+<\/tr>\s+<\/thead>\s+<tbody>\s+<tr>\s+)?<td class=\"(lastRow)?\"\s?style=\"width:\s?\d{1,2}% ;text-align:left\">\d+<\/td>\s+<td class=\"(lastRow)?\" style=\"text-align:left\">([^-]+)([^<]+)?<\/td>\s+<td class=\"(lastRow)?\" style=\"text-align:left\">\s+(([^-]+)- (\w+))\s+<\/td>\s+<td class=\"(lastRow)?\">(\d+:\d+)<\/td>/is";
    //print_r($result);
    preg_match_all($regexp2,$result['3']['0'],$result2);
    $_SESSION['partenza']=$result['1']['0'];
    $_SESSION['destinazione']=$result['2']['0'];
    $_SESSION['status']=$result['4']['0'];
    $lista[1]=$result2[2];
    $lista[2]=$result2[5];
    $lista[3]=$result2[8];
    $lista[4]=$result2[12];
    $_SESSION['lista']=$lista;
    }
    header('location:./result_dhl.php?codice='.$stringa.'');
    }
    grazie per l'aiuto=)
    Ultima modifica di watchdelivery : 19-10-2011 alle ore 12.25.05

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Fatti stampare il contenuto di $html1, così puoi capire meglio dove si annida il problema.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    Guest

    Predefinito

    mi restituisce l'html della pagina con i dati che mi servono;quindi in teoria non c'entra la funzione..non so proprio che pensare, uso lo stesso metodo per bartolini e tnt(usando un semplice implode invece di curl) e non mi ha mai creato problemi :/
    Ultima modifica di watchdelivery : 19-10-2011 alle ore 13.41.18

Regole di scrittura

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