Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/12/2011, 19:37
maczy
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: obtener Captcha CURL

Evidentemente se poco, estuve probando y testeando este codigo y funciona... lo que unico que lo que consigo es traer la web enteraa aca te lo dejo....



Código PHP:
<?php
/**
 * Clase para gestionar las conexesiones y peticiones a servidores remotos
 */
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 se lo llama del siguiente:


Código PHP:
<?php
require_once("HttpConnection.php");
$http = new HttpConnection();  
$http->setCookiePath("/my_cookie_path/");  
$http->init();  
echo 
$http->get("http://www.google.es");  
$http->close();

Alguna idea de como implementarlo? o al menos traer solo la tabla de la pagina?

Taambien te dejo esta pagina al parecer funciona pero no se como instalarla... utiliza codeigniter:

http://www.diegodicamillo.com.ar/blog/2010/01/08/envios-de-sms-como-email-utilizando-codeigniter/comment-page-1/#comment-505


Última edición por maczy; 28/12/2011 a las 20:06