Buenas la ayuda que pido es que si hay alguna funcion para guardar la salida de un archivo en otro
Me explico??...
Bueno lo que pasa es esto: Quiero descargar un archivo por medio de php de esta manera este es el codigo:
function shapeUrl($url,$return) {
$en = strpos($url,"/");
if($return == "host") {
$dns = str_replace("http://","",$url);
$host = str_replace("www.","",$dns);
$en = strpos($host,"/");
if($host = substr_replace($host,"",$en)) {
return $host;
}else {
return $dns;
}
}
if($return == "path" && $en) {
$url = str_replace("http://","",$url);
$url = str_replace("www.","",$url);
$posi = strpos($url,"/");
return substr($url,$posi,strlen($url));
}else {
return "/";
}
}
function GetOrHeader($dns,$metod) {
$metod = strtoupper($metod);
$host = shapeUrl($dns,"host");
$path = shapeUrl($dns,"path");
if($metod == "HEAD") {
$conexion = fsockopen($host,"80");
$cabecera = "HEAD $path HTTP/1.1\r\n";
$cabecera .= "Host: www.$host\r\n";
$cabecera .= "User-Agent: Extract/1.0\r\n";
$cabecera .= "Connection: close\r\n\r\n";
fwrite($conexion,$cabecera);
return $resultado = stream_get_contents($conexion);
fclose($conexion);
}else if($metod == "GET") {
$conexion = fsockopen($host,"80");
$cabecera = "GET $path HTTP/1.1\r\n";
$cabecera .= "Host: www.$host\r\n";
$cabecera .= "User-Agent: Extract/1.0\r\n";
$cabecera .= "Connection: close\r\n\r\n";
fwrite($conexion,$cabecera);
return $resultado = stream_get_contents($conexion);
fclose($conexion);
}
}
GetOrHeader("UrlDelArchivoAdescargar","get");
Todo va biien cuando devuelve la salida por medio de fpasthru() La salida es instantanea Pero cuando lo ago por medio de stream_get_contents() Tarda mucho en dar la salida, Lo que quiero acer Es escribir la salida de GetOrHeader() en otro archivo para guardar la informacion descargada Me explico??.....
Ah! la razon por la que no uso Curl es porque la verdad quiero saber como funcionan las cosas (Claro cuando se puede verdad XD)....
Gracias por adelantado...agradezco muchooo su ayuda!! bye bye..
Me explico??...
Bueno lo que pasa es esto: Quiero descargar un archivo por medio de php de esta manera este es el codigo:
function shapeUrl($url,$return) {
$en = strpos($url,"/");
if($return == "host") {
$dns = str_replace("http://","",$url);
$host = str_replace("www.","",$dns);
$en = strpos($host,"/");
if($host = substr_replace($host,"",$en)) {
return $host;
}else {
return $dns;
}
}
if($return == "path" && $en) {
$url = str_replace("http://","",$url);
$url = str_replace("www.","",$url);
$posi = strpos($url,"/");
return substr($url,$posi,strlen($url));
}else {
return "/";
}
}
function GetOrHeader($dns,$metod) {
$metod = strtoupper($metod);
$host = shapeUrl($dns,"host");
$path = shapeUrl($dns,"path");
if($metod == "HEAD") {
$conexion = fsockopen($host,"80");
$cabecera = "HEAD $path HTTP/1.1\r\n";
$cabecera .= "Host: www.$host\r\n";
$cabecera .= "User-Agent: Extract/1.0\r\n";
$cabecera .= "Connection: close\r\n\r\n";
fwrite($conexion,$cabecera);
return $resultado = stream_get_contents($conexion);
fclose($conexion);
}else if($metod == "GET") {
$conexion = fsockopen($host,"80");
$cabecera = "GET $path HTTP/1.1\r\n";
$cabecera .= "Host: www.$host\r\n";
$cabecera .= "User-Agent: Extract/1.0\r\n";
$cabecera .= "Connection: close\r\n\r\n";
fwrite($conexion,$cabecera);
return $resultado = stream_get_contents($conexion);
fclose($conexion);
}
}
GetOrHeader("UrlDelArchivoAdescargar","get");
Todo va biien cuando devuelve la salida por medio de fpasthru() La salida es instantanea Pero cuando lo ago por medio de stream_get_contents() Tarda mucho en dar la salida, Lo que quiero acer Es escribir la salida de GetOrHeader() en otro archivo para guardar la informacion descargada Me explico??.....
Ah! la razon por la que no uso Curl es porque la verdad quiero saber como funcionan las cosas (Claro cuando se puede verdad XD)....
Gracias por adelantado...agradezco muchooo su ayuda!! bye bye..