Foros del Web » Programando para Internet » PHP »

migrar de fopen a cURL ??

Estas en el tema de migrar de fopen a cURL ?? en el foro de PHP en Foros del Web. Hola, armé un script que crea un archivo html (es un cupón), por cada persona que ingresa sus datos en un formulario (nombre , apellido ...
  #1 (permalink)  
Antiguo 19/01/2009, 07:43
 
Fecha de Ingreso: diciembre-2006
Mensajes: 28
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación migrar de fopen a cURL ??

Hola, armé un script que crea un archivo html (es un cupón), por cada persona que ingresa sus datos en un formulario (nombre , apellido , email). Este archivo se crea en una carpeta con permisos 777 llamada promociones.

La función que utilizo es fopen(). Al correr el script en local funciona correctamente, crea el html con el contenido.
El problema es que al subir al servidor, me da un error como que la función fopen está desactivada (desde el soporte me dicen que es por seguridad) y que cambie a la función cURL, ya que funciona de la misma manera que fopen.

El tema es que no tengo ni idea como migrar lo que hice a cURL.

Aquí el código: (por si alguién me puede ayudar).
Gracias de antemano.

//////////////////////////////////////////////////////////////////////////////////////////////////////

Código:
/* FUNCION: CREAR HTML */
function crear_promo($id,$form){
require ("php/config_site.inc");
$fecha=date("j-m-y");

    $pagina="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"".">";
    $pagina.="<head>";
    $pagina.="<title>Promoci&oacute;n del D&iacute;a</title>";
    $pagina.="<link href=\""."../css/promociones.css\"". "rel=\""."stylesheet\"". "type=\""."text/css\"". "/>";
    $pagina.="</head>";
    $pagina.="<body>";
    
    $pagina.="<div class=\""."imagen\""."><div><img src=\""."../images/promociones/imagen_".date('w').".jpg\""."/></div></div>";
    
    $pagina.="<div class=\""."info\"".">";
    $pagina.="<p class=\""."fecha\"".">V&aacute;lido para el d&iacute;a: <b>".$fecha."</b></p>";
    $pagina.="<p class=\""."nombre\""."><b>".$form['nombre']." ".$form['apellido']."</b></p>";
    $pagina.="<p>".$form['email']."</p>";
    $pagina.="</div><br />";
    $pagina.="<a href=javascript:window.print();>Imprimir promoci&oacute;n</a>";
        
    $pagina.="</body></html>";

    //$url contiene la ruta absoluta hasta la carpeta promociones.
$nombre_archivo = $url."promociones/promo-".$fecha."-".$id.".html";
$contenido = "Agregar esto al archivo\n";

    $path="ruta/".$nombre_archivo;    
    $Open = fopen ($path,"a+"); 
    if ($Open) {
        fwrite ($Open,"$pagina");
        return $nombre_archivo;        
    }else{
        echo "error, intente nuevamente.";
    } 

}
  #2 (permalink)  
Antiguo 19/01/2009, 10:53
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: migrar de fopen a cURL ??

Código PHP:
function open_page($url,$f=1,$c=2,$r=0,$a=0,$cf=0,$pd=""){
 global 
$oldheader;
 
$url str_replace("http://","",$url);
 if (
preg_match("#/#","$url")){
  
$page $url;
  
$url = @explode("/",$url);
  
$url $url[0];
  
$page str_replace($url,"",$page);
  if (!
$page || $page == ""){
   
$page "/";
  }
  
$ip gethostbyname($url);
 }else{
  
$ip gethostbyname($url);
  
$page "/";
 }
 
$open fsockopen($ip80$errno$errstr60);
 if (
$pd){
  
$send "POST $page HTTP/1.0\r\n";
 }else{
  
$send "GET $page HTTP/1.0\r\n";
 }
 
$send .= "Host: $url\r\n";
 if (
$r){
  
$send .= "Referer: $r\r\n";
 }else{
  if (
$_SERVER['HTTP_REFERER']){
   
$send .= "Referer: {$_SERVER['HTTP_REFERER']}\r\n";
  }
 }
 if (
$cf){
  if (@
file_exists($cf)){
   
$cookie urldecode(@file_get_contents($cf));
   if (
$cookie){
    
$send .= "Cookie: $cookie\r\n";
    
$add = @fopen($cf,'w');
    
fwrite($add,"");
    
fclose($add);
   }
  }
 }
 
$send .= "Accept-Language: en-us, en;q=0.50\r\n";
 if (
$a){
  
$send .= "User-Agent: $a\r\n";
 }else{
  
$send .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
 }
 if (
$pd){
  
$send .= "Content-Type: application/x-www-form-urlencoded\r\n";  
  
$send .= "Content-Length: " .strlen($pd) ."\r\n\r\n";
  
$send .= $pd;
 }else{
  
$send .= "Connection: Close\r\n\r\n";
 }
 
fputs($open$send);
 while (!
feof($open)) {
  
$return .= fgets($open4096);
 }
 
fclose($open);
 
$return = @explode("\r\n\r\n",$return,2);
 
$header $return[0];
 if (
$cf){
  if (
preg_match("/Set\-Cookie\: /i","$header")){
   
$cookie = @explode("Set-Cookie: ",$header,2);
   
$cookie $cookie[1];
   
$cookie explode("\r",$cookie);
   
$cookie $cookie[0];
   
$cookie str_replace("path=/","",$cookie[0]);
   
$add = @fopen($cf,'a');
   
fwrite($add,$cookie,strlen($read));
   
fclose($add);
  }
 }
 if (
$oldheader){
  
$header "$oldheader<br /><br />\n$header";
 }
 
$header str_replace("\n","<br />",$header);
 if (
$return[1]){
  
$body $return[1];
 }else{
  
$body "";
 }
 if (
$c === 2){
  if (
$body){
   
$return $body;
  }else{
   
$return $header;
  }
 }
 if (
$c === 1){
  
$return $header;
 }
 if (
$c === 3){
  
$return "$header$body";
 }
 if (
$f){
  if (
preg_match("/Location\:/","$header")){
   
$url = @explode("Location: ",$header);
   
$url $url[1];
   
$url = @explode("\r",$url);
   
$url $url[0];
   
$oldheader str_replace("\r\n\r\n","",$header);
   
$l "&#76&#111&#99&#97&#116&#105&#111&#110&#58";
   
$oldheader str_replace("Location:",$l,$oldheader);
   return 
open_page($url,$f,$c,$r,$a,$cf,$pd);
  }else{
   return 
$return;
  }
 }else{
  return 
$return;
 }
}
/////////////
////Usage////
/////////////
$url "http://www.php.net";
$f 1;
$c 2;//1 for header, 2 for body, 3 for both
$r NULL;
$a NULL;
$cf NULL;
$pd NULL;
$page open_page($url,$f,$c,$r,$a,$cf,$pd);
print 
$page;
?> 
Fuente: http://ar2.php.net/fopen
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 19/01/2009, 12:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 28
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: migrar de fopen a cURL ??

Gracias por responder tán rápido. Estoy probando cambiando la $url. Pero la verdad no logro entender el código. no se donde poner el contenido que se generará dentro del html, ni donde crea el archivo, o con que nombre.

Por la lógica del código que arme entiendo estos pasos con "fopen":

1-dentro de la $pagina guardaba el contenido que tendría el .html nuevo.
2-luego con $nombre_archivo indicaba el nombre del archivo a crear.
3-y por último con la función fopen creaba el archivo .html con nombre variable en la carpeta que indicaba $url (con permisos 777).

Si tienes alguna url de ejemplo para que pueda ver el funcinoamiento te lo voy a agradecer.

Saludos.
  #4 (permalink)  
Antiguo 19/01/2009, 12:48
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: migrar de fopen a cURL ??

La copié y pegué, no sé siquiera si funciona, deberías revisarla. A todo esto, ya sabes que tampoco funciona http://ar2.php.net/manual/es/functio...t-contents.php?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:07.