Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/07/2014, 19:59
Cruz_Tenorio
 
Fecha de Ingreso: julio-2014
Ubicación: jalisco
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problemas con cargar una pagina con cUrl

amigos por fin lo logre, se tiene que crear una clase que se las dejo a continuacion para quien la llegue a necesitar

Código PHP:
<?php 
class HttpConnection {  
    private 
$curl;  
    private 
$cookie;  
    private 
$cookie_path="/cookies";  
    private 
$id;  
  
    public function 
__construct() {  
        
$this->id time();  
    }  
    
/** 
     * Inicializa el objeto curl con las opciones por defecto. 
     * Si es null se crea 
     * @param string $cookie a usar para la conexion 
     */  
    
public function init($cookie=null) {  
        if(
$cookie)  
            
$this->cookie $cookie;  
        else  
            
$this->cookie $this->cookie_path $this->id;  
  
        
$this->curl=curl_init();  
        
curl_setopt($this->curlCURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");  
        
curl_setopt($this->curlCURLOPT_HEADERfalse);  
        
curl_setopt($this->curlCURLOPT_COOKIEFILE,$this->cookie);  
        
curl_setopt($this->curlCURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));  
        
curl_setopt($this->curlCURLOPT_COOKIEJAR$this->cookie);  
        
curl_setopt($this->curlCURLOPT_SSL_VERIFYPEERfalse);  
        
curl_setopt($this->curlCURLOPT_SSL_VERIFYHOSTfalse);  
        
curl_setopt($this->curlCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_0);  
        
curl_setopt($this->curlCURLOPT_RETURNTRANSFER,true);  
        
curl_setopt($this->curlCURLOPT_CONNECTTIMEOUT5);  
        
curl_setopt($this->curlCURLOPT_TIMEOUT60);  
        
curl_setopt($this->curlCURLOPT_AUTOREFERERTRUE);  
}  
    
/** 
     * Establece en que ruta se guardan las cookies. 
     * Importante: El usuario de apache debe tener acceso de lectura y escritura 
     * @param string $path 
     */  
    
public function setCookiePath($path){  
        
$this->cookie_path $path;  
    }  
    
/** 
     * Envía una peticion GET a la URL especificada 
     * @param string $url 
     * @param bool $follow 
     * @return string Respuesta generada por el servidor 
     */  
    
public function get($url,$follow=false) {  
        
$this->init();  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_POST,false);  
        
curl_setopt($this->curlCURLOPT_HEADER$follow);  
        
curl_setopt($this->curlCURLOPT_REFERER'');  
        
curl_setopt($this->curlCURLOPT_FOLLOWLOCATION$follow);  
        
$result=curl_exec ($this->curl);  
        if(
$result === false){  
            echo 
curl_error($this->curl);  
        }  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Envía una petición POST a la URL especificada 
     * @param string $url 
     * @param array $post_elements 
     * @param bool $follow 
     * @param bool $header 
     * @return string Respuesta generada por el servidor 
     */  
    
public function post($url,$post_elements,$follow=false,$header=false) {  
        
$this->init();  
        
$elements=array();  
        foreach (
$post_elements as $name=>$value) {  
            
$elements[] = "{$name}=".urlencode($value);  
        }  
        
$elements join("&",$elements);  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_POST,true);  
        
curl_setopt($this->curlCURLOPT_REFERER'');  
        
curl_setopt($this->curlCURLOPT_HEADER$header OR $follow);  
        
curl_setopt($this->curlCURLOPT_POSTFIELDS$elements);  
        
curl_setopt($this->curlCURLOPT_FOLLOWLOCATION$follow);  
        
$result=curl_exec ($this->curl);  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Descarga un fichero binario en el buffer 
     * @param string $url 
     * @return string 
     */  
    
public function getBinary($url){  
        
$this->init();  
        
curl_setopt($this->curlCURLOPT_URL$url);  
        
curl_setopt($this->curlCURLOPT_BINARYTRANSFER,1);  
        
$result curl_exec ($this->curl);  
        
$this->_close();  
        return 
$result;  
    }  
    
/** 
     * Cierra la conexión 
     */  
    
private function _close() {  
        
curl_close($this->curl);  
    }  
    public function 
close(){  
        if(
file_exists($this->cookie))  
            
unlink($this->cookie);  
    }  
}  
?>
y para utilizarla

Código PHP:
<?php 

include 'Classes/cURL.Class.php';
$http = new HttpConnection();  
$http->setCookiePath("/my_cookie_path/");  
$http->init();
$html $http->get("Aqui va la url que desean obtener");  
$http->close();

echo 
$html;
?>