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..