Devo fare uno script che, lanciato periodicamente, scarichi un file da un sito, il problema è che questo file non ha un link diretto in GET, ma si scarica con un bottone "download" che invia una richiesta POST...

con questa funzioncina riesco a mandare la richiesta post correttamente:

Codice PHP:
function PostRequest($url$referer$var
{
 
    
//converto le variabili dell'array in una stringa
    
$data = array();    
    foreach (
$var as $k=>$v)
        {
            
$data[] = "$k=$v";
        }    
    
$data implode('&'$data);

    
//parsing dell'url
    
$url parse_url($url);
    if (
$url['scheme'] != 'http')  die('Only HTTP request are supported !');
    
$host $url['host'];
    
$path $url['path'];

    
//Apro un socket verso l'host
    
$fp fsockopen($host80);

    
//Invio la richiesta post
    
fputs($fp"POST $path HTTP/1.1\r\n");
    
fputs($fp"Host: $host\r\n");
    
fputs($fp"Referer: $referer\r\n");
    
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
    
fputs($fp"Content-length: "strlen($data) ."\r\n");
    
fputs($fp"Connection: close\r\n\r\n");
    
fputs($fp$data);

    
//Preparo un file di output
    
$output fopen('output','w');

    while(!
feof($fp)) 
    {
        
//ricevo la risposta
        
$temp fread($fp,128);
        
fwrite($output,$temp);
    }

    
//chiudo socket e file 
    
fclose($fp);
    
fclose($output);
/

....ma:

1) (problema minore) scrivendo tutto sul file mi scrivo anche gli header.. mi chiedevo se c'era un metodo rapido di parsing per scartare l'header man mano che arriva, altrimenti me lo faccio io con un ciclo che legge carattere per carattere fino a che non trova la fine dell'header (\r\n\r\n).. chiedo conferma della correttezza.

2) probelma vero:

il file originale, scaricato a mano dal browser, inizia così:

TC TOG GO_Term ET_Name Tentative_Annotation Unique_Oligo

TC302922 apomucin;submaxillary mucin^^submaxillary apomucin [Sus scrofa domestica] Cluster: Submaxillary apomucin; n=1; Sus scrofa domestica|Rep: Submaxillary apomucin - Sus scrofa, complete GACGAGAGTATGACCAAGGAAGTGTCACCTCAGTTGGCTGCAACAAATGT ACTTGCATAAAAGGATCTTG

etc etc
Il file scaricato dallo script inizia (dopo l'header che per ora non sto scartando) così:

1


3a
TC TOG GO_Term ET_Name Tentative_Annotation Unique_Oligo


109
TC302922 apomucin;submaxillary mucin^^submaxillary apomucin [Sus scrofa domestica] Cluster: Submaxillary apomucin; n=1; Sus scrofa domestica|Rep: Submaxillary apomucin - Sus scrofa, complete GACGAGAGTATGACCAAGGAAGTGTCACCTCAGTTGGCTGCAACAAATGT ACTTGCATAAAAGGATCTTG

etc etc
insomma, tra una riga e l'altra ci sono ei caratteri spuri che non capisco da dove vengono fuori.... qualche idea?