Mostrando entradas con la etiqueta conectarse a una pagina desde php. Mostrar todas las entradas
Mostrando entradas con la etiqueta conectarse a una pagina desde php. Mostrar todas las entradas

miércoles, 27 de marzo de 2013

Curl PHP

PHP soporta libcurl, una biblioteca creada por Daniel Stenberg que permite conectarse y comunicarse con diferentes tipos de servidores y diferentes tipos de protocolos. Actualmente, libcurl admite los protocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también admite certificados HTTPS, HTTP, POST, HTTP PUT, subidas mediante FTP (también se puede hacer con la extensión FTP de PHP), subidas basadas en formularios HTTP, proxies, cookies, y autenticación usuario+contraseña. ver toda la info en http://php.net/manual/es/book.curl.php ahora vamos a instalar
# aptitude install php5-curl
luego verifique su configuracion de php con un de momento mostrare un codigo que uso en symfony para obtener la info del CNE a partir de una cedula.. luego usteder jugaran con este y otros codigos como quieran.. paso 1 crear una carpeta functions en proy/lib
$ mkdir /var/www/proy/lib/functions
y dentro de eso creo una clase que contendra un metodo para invocar esta funcion proy/lib/functions/functions.class.php
class functions {
public static function getDatosCne($ci){
        $url="http://www.cne.gov.ve/web/registro_electoral/ce.php?nacionalidad=V&cedula=$ci";
        $curl = curl_init();
        curl_setopt ($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // almacene en una variable
        curl_setopt($curl, CURLOPT_HEADER, true);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $cne='';

        if(curl_exec($curl) === false){
            echo 'Curl error: ' . curl_error($curl);
        }else
        {
            $cne = curl_exec($curl);
            $inicio = stripos($cne, '');
            if($inicio){
                $cne_datos = substr($cne,$inicio);

                $fin = stripos($cne_datos, '
'); $cne_datos = substr($cne_datos,0,$fin+8); $cne = $cne_datos; } else{ $cne = false; } } curl_close($curl); return $cne; } }
y luego en mi action uso este metodo para obtener los datos del CNE de una persona en particular..
$cne = functions::getDatosCne($persona->getCi());
y si necesito algun dato en particular de la informacion que estoy recibiendo simplemente hago un explode de la cadena
foreach($personas as $persona){
 $persona_cne = new PersonaCne();
 $persona_cne->setPersonaId($persona->getId());
 $cne = functions::getDatosCne($persona->getCi());
 if($cne){
  $persona_cne->setCne($cne);
  $cne = strip_tags(htmlspecialchars_decode($cne));
  $ci = explode('Nombre:',$cne);
  $n_ci = explode(':',$ci[0]);
  $persona_cne->setCneCi(trim($n_ci[1]));
  $nombre = explode('Estado:',$ci[1]);
  $persona_cne->setCneNombre(trim($nombre[0]));
  $estado = explode('Municipio:',$nombre[1]);
  $persona_cne->setCneEstado(trim($estado[0])); 
  $municipio = explode('Parroquia:',$estado[1]);
  $persona_cne->setCneMunicipio(trim($municipio[0]));
  $parroquia = explode('Centro:',$municipio[1]);
  $persona_cne->setCneParroquia(trim($parroquia[0]));
  $centro = explode('Direccion:',$parroquia[1]);
  $persona_cne->setCneCentro(trim($centro[0])); 
 }
 $persona_cne->save();
}
y listo..