Cómo acceder a Gmail usando PHP

Cómo acceder a Gmail usando PHP

Cómo hacer para...
Este post está inspirado en un caso muy interesante que me tocó resolver para un cliente. Doy un poco de contexto para que se entienda de dónde viene el tema: Una buena parte de los clientes de mi cliente llegan a través de correos que se reciben en info@...., claramente, te imaginarás que, dentro de los muchos que llegan, una parte es SPAM y la otra son contactos genuinos. Separar la paja del trigo sería un desafío realmente interesante (Que probablemente involucraría algo de procesamiento del lenguaje natural, IA y esas cosas tan divertidas), pero... por el momento el presupuesto dio sólo para mejorar un poco el proceso de tratamiento del trigo una vez haya sido debidamente identificado. Muy bien, entonces, el punto era que se estaba queriendo, además de…
Leer más
Cómo enviar XML a un WebService con PHP

Cómo enviar XML a un WebService con PHP

Cómo hacer para...
Para empezar, debemos responder una pregunta escencial: ¿se trata de un WebService de tipo SOAP o uno de tipo REST? ¡La forma de enviarlo en uno u otro caso será muy diferente! Otra historia es cómo recibir XML a través de WebServices desarrollados usando PHP... tema para otro post :) Cómo enviar XML a un WebService SOAP con PHP Como siempre, para el caso de que se trate de un webservice de tipo SOAP, usaremos la clase SOAPClient Tomemos como ejemplo este Servicio Web que tiene un solo método disponible (CustomerSearch), el cual recibe XML y devuelve XML. Tenemos dos alternativas para generar el XML que queremos enviar: Escribirlo explícitamente (o "a mano") Usar la clase SimpleXMLElement Si aún estás en dudas, no dudes más: usa la clase, te ahorrará una gran cantidad…
Leer más
Cómo exponer un WebService REST con PHP

Cómo exponer un WebService REST con PHP

Cómo hacer para...
¿Qué es un WebService? Ya en el artículo sobre cliente REST di una pequeña definición de un WebService, por si no lo leíste te lo cuento: Un WebService es una pequeña aplicación web diseñada para interactuar con otras aplicaciones (en lugar de hacerlo con personas). Las dos aplicaciones que se comunican toman el rol de: Servidor: quien expone el servicio Cliente: quien lo consume ¿Qué es REST? REST es un protocolo de intercambio de información basado en HTTP. ¿Cómo se implementa en PHP? Los servicios web basados en REST suelen ser mucho más fáciles de crear (y consumir) que los basados en SOAP. De hecho, cualquier aplicación PHP que hayas hecho podría ser un WebService REST! (Bueno… tal vez no uno muy útil, pero eso es otro tema :)). Te muestro un…
Leer más
Cómo exponer un WebService SOAP con PHP

Cómo exponer un WebService SOAP con PHP

Cómo hacer para...
¿Qué es un WebService? Ya en el artículo sobre cliente SOAP di una pequeña definición de un WebService, por si no lo leíste te lo cuento: Un WebService es una pequeña aplicación web diseñada para interactuar con otras aplicaciones (en lugar de hacerlo con personas). Las dos aplicaciones que se comunican toman el rol de: Servidor: quien expone el servicio Cliente: quien lo consume ¿Qué es SOAP? SOAP es un protocolo de intercambio de información basado en XML. ¿Cómo se implementa en PHP? Ahora que estamos claros con las definiciones veamos un ejemplo: server.php: <?php class MiClase { public function saludar() { return 'Hola ' . func_get_args()[0] . PHP_EOL; } } try { $server = new SoapServer( null, [ 'uri'=> 'http://localhost:8080/soap_server.php', ] ); $server->setClass('MiClase'); $server->handle(); } catch (SOAPFault $f) { print $f->faultstring;…
Leer más
Cómo realizar una aplicación web en PHP

Cómo realizar una aplicación web en PHP

Cómo hacer para...
Me llegó esta pregunta a través de Twitter: Y la verdad... me descolocó un poco (No descarto que haberla leído un Sábado a las 8 A.M. haya tenido algo que ver :)). Es que es algo tan natural para mi hoy en día que me fue difícil pensar en cómo responder... aquí va: Lo primero que habría que entender es a qué llamamos "Aplicación Web". Seguramente estés familiarizado con una serie de categorías como e-Commerce, Blogs, CMS, Red Social, etc..., pero si te preguntara qué es una aplicación web, ¿cómo responderías? Qué es una aplicación web ¿Por qué preguntarle a Wikipedia? En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador. En otras palabras, es un programa que se codifica en…
Leer más

Cómo eliminar registros antiguos usando PHP y MySQL

Cómo hacer para...
Me llega este correo de un ex alumno:   Mauro como estás? Espero que muy bien! Sigo con el proyecto del centro cultural y quisiera saber si hay alguna forma de generar un script en sql que me borre los eventos que cargue a los cuales ya les haya pasado la fecha. Saludos,   Si quisiéramos adherir estrictamente a la pregunta, la respuesta sería "Sí"... pero sería un poco mala persona si lo dejara ahí, ¿cierto? :) Voy a profundizar un poco para no dejar a nadie con la intriga. Una forma de resolver el problema desde sql (Asumo que se trata de MySQL) sería generar un procedimiento almacenado o directamente tener a mano una consulta que hiciera lo que se busca: borrar los eventos a los que les haya pasado…
Leer más
Cómo iniciar sesión en una web utilizando PHP

Cómo iniciar sesión en una web utilizando PHP

Cómo hacer para...
  Me llegó esta pregunta a través de un grupo de Facebook en el que participo: El tema me recuerda un poco lo que escribí sobre obtener información de un sitio que no ofrece una API pero, si bien el problema es similar no es exactamente el mismo. La idea aquí es simple, se trata de obtener programáticamente la información que podemos obtener usando un navegador para entrar a algún sitio. Recientemente un amigo tiene en una farmacia me pedía ayuda para lograr algo bastante parecido: lo que él buscaba era ingresar al sitio de la droguería (su proveedor) y consultar el stock de un determinado medicamento (Algo que puede hacer muy sencillamente ingresando manualmente al sitio... imaginate que hacer una consulta por una buena cantidad de productos no es para…
Leer más
Cómo filtrar un arreglo multidimensional por clave en PHP

Cómo filtrar un arreglo multidimensional por clave en PHP

Cómo hacer para...
Me llegó esta pregunta a través de twitter: Veamos el arreglo en mayor detalle: Por lo que se ve, se trata de un array de arrays. El primer índice es por número y la segunda dimensión tiene índices string y, viendo el contenido del mismo entiendo que se trata del resultado de alguna consulta a una base de datos (Siendo que los elementos parecen tener la misma estructura y especialmente al haber un elemento llamado "id"). Muy bien, entonces el objetivo sería obtener sólo aquellos elementos en los cuales la columna "condial_39" vale 1, en este caso sería el array completo, pero obviamente este podría no ser el caso. Se me ocurren diferentes formas de lograr este objetivo: A la vieja usanza Simplemente se trata de hacer una recorrida del…
Leer más
Cómo restringir el acceso a una web según el país del visitante

Cómo restringir el acceso a una web según el país del visitante

Cómo hacer para...
Una persona hizo esta pregunta en un grupo de desarrolladores de Facebook y me atacó la curiosidad. Para empezar, se me ocurren dos formas de atacar el problema, dependiendo de tus conocimientos, hosting que estés usando, etc... En cualquiera de los casos, lo mejor que podremos hacer será filtrar el tráfico en base a la dirección IP desde la que nos están visitando (Cada país tiene un rango de direcciones IP asignadas, con lo cual, suele ser una medida suficientemente buena). De lo que se trata en definitiva es de verificar si la IP del visitante está dentro de las IPs permitidas y, en caso contrario redireccionarlo a algún otro lado o mostrarle algún mensaje especial. Probablemente sea más fácil tener una lista de IPs prohibidas que permitidas (Suelen ser…
Leer más
Cómo tratar archivos comprimidos con PHP

Cómo tratar archivos comprimidos con PHP

Cómo hacer para...
Recientemente me tocó realizar una modificación a un sistema que había desarrollado para recibir un único archivo comprimido, en lugar de un conjunto de archivos en forma individual. Dejando de lado los ajustes hechos en el front-end (No fue gran cosa realmente, se trató de cambiar un formulario con 5 inputs por uno solo y, como lo había hecho usando el framework Symfony esa parte fue simple, ni tuve que tocar HTML), la parte interesante fue cómo procesar el archivo comprimido. Para empezar, algo que tuve que acordar con el usuario era el formato de compresión que íbamos a utilizar. Obviamente no es lo mismo descomprimir un archivo .rar que un .zip (Diferentes formatos, diferentes algoritmos de compresión, etc...). En mi caso no tuve problema porque tenía la posibilidad de definir…
Leer más