da neofita chiedo consiglio a chi ne sa più di me, anche per cominciare a capirci qualcosa, vi spiego il problema, ho trovato questo script che farebbe al caso mio visto che ho la necessità di salvare un immagine php su una cartella del server e di recuperarla successivamente e riupparla in altro server, però nonostante lo script faccia il suo lavoro , il file salvato ha un peso di 0 Kb quindi non valido,ciò che mi chiedo è un problema di server o di script?
il server è altervista con curl e fsockopen abilitati.
inoltre se qualcuno mi dicesse quale parametro modificare per cambiare la cartella di destinazione, poichè come sono le cose adesso la salva nella stessa cartella ove risiede lo scritp. grazie.
codice:
<?php
//function to get image with fsockopen
function GetImg($host,$link)
{
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr (error number $errno)
\n";
} else {
$out = "GET $link HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$out .= "Accept-Language: en-us,en;q=0.5\r\n";
$out .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
$out .= "Keep-Alive: 300\r\n";
$out .= "\r\n";
fwrite($fp, $out);
$contents='';
while (!feof($fp)) {
$contents.= fgets($fp, 1024);
}
fclose($fp);
return $contents;
}
}
//function to get image with CURL
function GetImageFromUrl($link)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
//1. Method file_Get contents
$contents= file_get_contents('http://www.google.com/intl/en_ALL/images/logo.gif');
//2.Method fsockopen
//$contents=GetImg("www.google.com","/intl/en_ALL/images/logo.gif");
//$contents=strchr($contents,"\r\n\r\n");//removes headers
//$contents=ltrim($contents);//remove whitespaces from begin of the string
//3. Method CURL
//$contents = GetImageFromUrl("http://www.google.com/intl/en_ALL/images/logo.gif");
$savefile = fopen('image.jpg', 'w');
fwrite($savefile, $contents);
fclose($savefile);
?>