Cómo enviar correos electrónicos en PHP con PHPMailer

enviar correos electrónicos en PHP

PHPMailer es quizás la biblioteca de código abierto más popular para enviar correos electrónicos en PHP. Fue lanzada por primera vez en 2001, y desde entonces se ha convertido en la forma favorita de los desarrolladores de PHP para enviar correos electrónicos de forma programada.

En este artículo, hablaremos acerca de por qué deberías usar PHPMailer en lugar de la función mail() de PHP, y mostraremos algunos ejemplos de código sobre cómo usar esta biblioteca.

¿Es una alternativa a la función mail() de PHP?

En la mayoría de los casos, es una alternativa a la función mail() de PHP, pero hay muchos otros casos en los que la función mail() simplemente no es lo suficientemente flexible para lograr lo que necesitas.

En primer lugar, PHPMailer provee una interfaz orientada a objetos, mientras que mail() no está orientada a objetos. Los desarrolladores de PHP generalmente odian crear cadenas de $headers mientras envían correos electrónicos usando la función mail() porque requieren mucho escape. PHPMailer hace que esto sea muy fácil. Los desarrolladores también necesitan escribir código sucio (caracteres de escape, codificación y formato) para enviar adjuntos y correos electrónicos basados en HTML cuando usan la función mail(), mientras que PHPMailer hace que esto sea muy sencillo.

Además, la función mail() requiere un servidor de correo local para enviar los correos electrónicos, que no siempre es fácil de configurar. PHPMailer puede usar un servidor de correo no local (SMTP) si tiene autenticación.

Otras ventajas para enviar correos electrónicos en PHP con PHPMailer incluyen:

  • Puede imprimir varios tipos de mensajes de error en más de 40 idiomas cuando no puede enviar un correo electrónico.
  • Tiene integrado el soporte del protocolo SMTP y la autenticación a través de SSL y TLS.
  • Puede enviar una versión alternativa de texto plano de correo electrónico para clientes de correo electrónico no HTML.
  • Tiene una comunidad de desarrolladores muy activa que lo mantiene seguro y actualizado.

PHPMailer también es usado por populares sistemas de administración de contenido PHP como WordPress, Drupal y Joomla.

Instalando PHPMailer

Puedes instalar PHPMailer usando Composer para enviar correos electrónicos en PHP:

composer require phpmailer/phpmailer

Enviar correos electrónicos en PHP desde un servidor web local usando PHPMailer

Aquí está el ejemplo más simple de enviar correos electrónicos en PHP desde un servidor web local usando PHPMailer:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once "vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer(true);

//La dirección de correo electrónico y el nombre
$mail->From = "de@tudominio.com";
$mail->FromName = "Nombre completo";

//A la dirección y el nombre
$mail->addAddress("destinatario1@tudominio.com", "Nombre del destinatario");
$mail->addAddress("destinatario1@tudominio.com"); //El nombre del destinatario es opcional

//Dirección a la que responderá el destinatario
$mail->addReplyTo("info@tudominio.com", "Respuesta");

//CC y BCC
$mail->addCC("cc@ejemplo.com");
$mail->addBCC("bcc@ejemplo.com");

//Envía un correo electrónico en HTML o en texto plano
$mail->isHTML(true);

$mail->Subject = "Texto del asunto";
$mail->Body = "<i>Cuerpo del correo en HTML</i>";
$mail->AltBody = "Esta es la versión de texto simple del contenido del correo electrónico";

try {
    $mail->send();
    echo "El mensaje ha sido enviado correctamente";
} catch (Exception $e) {
    echo "Mailer Error: " . $mail->ErrorInfo;
}

El código y los comentarios deben ser lo suficientemente claros para explicar todo lo que está pasando.

Enviar correos electrónicos en PHP con archivos adjuntos

Aquí tienes un ejemplo de cómo enviar un correo electrónico con archivos adjuntos usando PHPMailer:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once "vendor/autoload.php";

$mail = new PHPMailer;

$mail->From = "de@tudominio.com";
$mail->FromName = "Nombre completo";

$mail->addAddress("destinatario1@ejemplo.com", "Nombre del destinatario");

//Proporciona la ruta del archivo y el nombre de los archivos adjuntos
$mail->addAttachment("archivo.txt", "Archivo.txt");        
$mail->addAttachment("imagen/perfil.png"); //El nombre del archivo es opcional

$mail->isHTML(true);

$mail->Subject = "Texto del asunto";
$mail->Body = "<i>Cuerpo del correo en HTML</i>";
$mail->AltBody = "Esta es la versión de texto simple del contenido del correo electrónico";

try {
    $mail->send();
    echo "El mensaje ha sido enviado correctamente";
} catch (Exception $e) {
    echo "Mailer Error: " . $mail->ErrorInfo;
}

Aquí, estamos adjuntando dos archivos – archivo.txt, que reside en el mismo directorio que el script, e imágenes/perfil.png, que reside en el directorio de imágenes del directorio del script.

Para agregar archivos adjuntos al correo electrónico, sólo tenemos que llamar a la función addAttachment del objeto PHPMailer pasando la ruta del archivo como parámetro. Para adjuntar varios archivos, necesitamos llamarla varias veces.

Solución de problemas

En nuestros dos ejemplos, usamos la clase PHPMailer’s Exception para la depuración, así que cualquier error que se arroje nos ayudará a depurar cualquier problema que pueda ocurrir. También añadimos el parámetro true al constructor de PHPMailer, para obtener excepciones de mayor nivel y más descriptivas.

Dependiendo del sistema que utilicemos, probablemente el error más frecuente que veremos estará relacionado con la ejecución de la función mail() en segundo plano:

Mailer Error: Could not instantiate mail function.

Si necesitamos más detalles sobre el error, también podemos añadir algo como esto a la cláusula de captura:

print_r(error_get_last());

Normalmente, el problema con la función de correo estará relacionado con la falta de configuración del servidor de correo, en cuyo caso la función error_get_last devolverá algo como esto:


Array (
    [type] => 2
    [message] => mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
    [file] => OUR_PATH \vendor\phpmailer\phpmailer\src\PHPMailer.php
    [line] => 863
)

Este es el problema con el que probablemente nos encontraremos más a menudo, y podemos resolverlo fácilmente usando SMTP.

Visualización de mensajes de error localizados

$mail->ErrorInfo puede devolver mensajes de error en 43 idiomas diferentes.

Para mostrar los mensajes de error en un idioma diferente, copia el directorio del idioma del código fuente de PHPMailer al directorio del proyecto.

Para devolver los mensajes de error en español, por ejemplo, pon el objeto PHPMailer en el idioma español usando la siguiente llamada al método:

$mail->setLanguage("es");

También puedes añadir tus propios archivos de idioma al directorio de idiomas.

Uso de SMTP (Enviar correos electrónicos en PHP)

Puedes usar el servidor de correo de otro host para enviar el correo electrónico, pero para esto primero necesitas tener una autenticación. Por ejemplo, para enviar un correo electrónico desde el servidor de correo de Gmail, necesitas tener una cuenta de Gmail.

SMTP es un protocolo utilizado por los clientes de correo para enviar una solicitud de envío de correo electrónico a un servidor de correo. Una vez que el servidor de correo verifica el correo electrónico, lo envía al servidor de correo de destino.

A continuación, se muestra un ejemplo de envío de un correo electrónico desde el servidor de correo de Gmail desde tu dominio. No necesitas un servidor de correo local para ejecutar el código. Utilizaremos el protocolo SMTP:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require_once "vendor/autoload.php";

$mail = new PHPMailer(true);

//Habilitar la depuración de SMTP.
$mail->SMTPDebug = 3;                               
//Configurar PHPMailer para usar SMTP.
$mail->isSMTP();            
//Configurar el nombre de host SMTP                          
$mail->Host = "smtp.gmail.com";
//Pon esto en true si el host SMTP requiere autenticación para enviar el correo electrónico
$mail->SMTPAuth = true;                          
//Proporciona el nombre de usuario y la contraseña     
$mail->Username = "nombre@gmail.com";                 
$mail->Password = "super_contraseña_secreta";                           
//Si el SMTP requiere una encriptación TLS, entonces configúralo
$mail->SMTPSecure = "tls";                           
//Configurar el puerto TCP para conectarse a
$mail->Port = 587;                                   

$mail->From = "nombre@gmail.com";
$mail->FromName = "Nombre completo";

$mail->addAddress("nombre@ejemplo.com", "Nombre del destinatario");

$mail->isHTML(true);

$mail->Subject = "Texto del asunto";
$mail->Body = "<i>Cuerpo del correo en HTML</i>";
$mail->AltBody = "Esta es la versión de texto simple del contenido del correo electrónico";

try {
    $mail->send();
    echo "El mensaje ha sido enviado correctamente";
} catch (Exception $e) {
    echo "Mailer Error: " . $mail->ErrorInfo;
}

Gmail requiere la encriptación TLS sobre SMTP, por lo que la configuramos de acuerdo a ello. Antes de enviar a través de SMTP, debes averiguar el nombre de host, el número de puerto, el tipo de cifrado, si es necesario, y si se requiere autenticación, también necesitas el nombre de usuario y la contraseña. Ten en cuenta que tener la autenticación de dos factores habilitada en Gmail no te permitirá utilizar su SMTP con el nombre de usuario y la contraseña. En su lugar, se requerirá una configuración adicional.

Una gran ventaja de utilizar el SMTP remoto sobre el correo local es que si utilizas la función mail() de PHP para enviar correo electrónico con el dominio de la dirección “De” configurado a cualquier otra cosa que no sea el nombre de dominio local (nombre del servidor), entonces los filtros de ataque del servidor de correo del destinatario lo marcarán como spam. Por ejemplo, si se envía un correo electrónico desde un servidor con el nombre de host real ejemplo.com con la dirección del remitente nombre@gmail.com a name@yahoo.com, entonces los servidores de Yahoo lo marcarán como spam o mostrarán un mensaje al usuario para que no confíe en el correo electrónico porque el origen del correo es ejemplo.com y, sin embargo, se presenta como si proviniera de gmail.com. Aunque seas el dueño de nombre@gmail.com, no hay forma de que Yahoo lo descubra.

Recuperación de correos electrónicos usando POP3

PHPMailer también permite la verificación de POP antes de SMTP para enviar correos electrónicos. En otras palabras, puedes autenticarte usando POP y enviar correos electrónicos usando SMTP. Lamentablemente, PHPMailer no soporta la recuperación de correos electrónicos de servidores de correo usando el protocolo POP3. Está limitado a sólo enviar correos electrónicos.

Conclusión

Si eres un desarrollador de PHP, hay pocas posibilidades de evitar tener que enviar correos electrónicos en PHP programáticamente. Aunque puedes optar por servicios de terceros como Mandrill o SendGrid, a veces eso no es una opción, y menos aún por tu propia biblioteca de envío de correo electrónico. Ahí es donde PHPMailer y sus alternativas (Zend Mail, Swift Mailer, etc.) entran en juego.

Puedes conocer las APIs de esta biblioteca en el wiki del repositorio, o en la documentación oficial.

Si te ha gustado este artículo, te invito a leer cómo crear un formulario de contacto en HTML.

Los mejores scripts de reservas online en PHP

Los Mejores Scripts De Reservas Online En PHP

 

PHP es el motor de varios scripts de reservas online, por eso es uno de los lenguajes más utilizados en el mundo. Desde sitios web de nivel medio hasta aplicaciones de nivel empresarial, el lenguaje proporciona grandes funcionalidades de codificación para desarrollar todo tipo de aplicaciones avanzadas.

El script de reservas online es uno de los mejores ejemplos de cómo PHP impulsa diferentes industrias para facilitar a los usuarios y a las organizaciones por igual. El lenguaje facilita la rápida integración de varias bibliotecas y herramientas externas. Facilitando a los desarrolladores la construcción de cualquier tipo de aplicación de reservas online en PHP con las funcionalidades deseadas.

Construir un script de reservas online requiere de un profundo conocimiento técnico. Pero aún así no es tan difícil como parece, ¡gracias a los Scripts de Reservas de PHP ya preconstruidos!

Hay muchos scripts de reservas en PHP personalizados disponibles en el mercado, haciendo el trabajo de los desarrolladores más fácil que nunca. Usando estos scripts, cualquiera puede integrar un sistema de reservas online completamente funcional en tu aplicación en cuestión de minutos, y también puedes personalizarlo más tarde para satisfacer las necesidades del proyecto.

Los mejores scripts de reservas en PHP

Este blog ofrece una breve reseña de algunos de los scripts de reservas en PHP más utilizados online y sus grandes características incorporadas. Enumera todos los principales scripts PHP que permiten a los desarrolladores construir todo tipo de sistemas de reservas con PHP online con facilidad. Echemos un vistazo a ellos a continuación:

Hotel Booking System

sistema de reservas online para hoteles en PHP

Para facilitar al administrador, este sistema de reservas online en PHP proporciona grandes características incorporadas para gestionar las reservas de hotel diarias sin esfuerzo. Proporciona una poderosa plataforma de reservas online donde se puede gestionar fácilmente las reservas de habitaciones de los usuarios, promociones de hoteles/vales, etc. Está desarrollado con PHP y MySQL, lo que hace que sea muy fácil de integrar en los proyectos en sólo unos pocos pasos.

Ofrece un diseño fácil de usar en el móvil  y proporciona múltiples idiomas para atraer a una gran cantidad de clientes. Además, también proporciona una clara herramienta de llamada a la acción que puede utilizar con mensajes impactantes para aumentar sus conversiones y reservas

Restaurant Booking System

sistema de reservas online para restaurantes PHP

Este es un sistema de reservas online PHP muy útil, desarrollado para facilitar a los usuarios la reserva de mesas y salones en un restaurante. Es un sistema de reservas de autoservicio que permite a la gente reservar mesas fácilmente a través del sitio web, y pagar facturas anticipadas para la reserva si es necesario. Es muy fácil de usar y personalizable, por lo que a los desarrolladores les encanta usarlo en sus proyectos web.

Con el sistema de reserva de restaurantes, se puede personalizar el proceso de reserva, gestionar la disponibilidad de mesas, el menú de prepedido para la cena/almuerzo, etc. También ofrece una función de notificación por correo electrónico y SMS para tenerte al tanto de las próximas reservas y pedidos.

Car Booking System

sistema de reservas de coches online

Es un avanzado sistema de reservas de coches online hecho para simplificar los problemas diarios de los coches de alquiler. Utilizando el script, puedes integrar fácilmente un sistema de reservas de coches totalmente funcional en tu aplicación que ayuda a los usuarios a reservar, gestionar y especificar los inventarios de coches. El sistema de reservas de código abierto PHP te ayuda a notificar a tus usuarios sobre los coches disponibles para reservar y sus fechas de reserva. Ofrece una función de notificación push que permite a los responsables de los sitios web enviar notificaciones puntuales y personalizadas por SMS o correo electrónico a los clientes, informándoles de sus reservas y pagos pendientes.

También proporciona un diseño receptivo que facilita el acceso en todo tipo de dispositivos. Además, se ha desarrollado con una escritura ligera para facilitar su integración en todo tipo de aplicaciones.

Rental Property Booking Calendar

sistema de reserva de inmuebles en alquiler

Integra este sistema de reserva de inmuebles en alquiler en tu aplicación y experimenta la facilidad de reserva de inmuebles con un solo clic. Es un avanzado sistema de reservas especialmente desarrollado para los propietarios de inmuebles en alquiler. Para permitirles gestionar fácilmente las fechas, lugares y clientes en las temporadas de vacaciones que están de moda. Utilizando el sistema online, los usuarios pueden reservar sin esfuerzo apartamentos, habitaciones, etc. Con sólo pulsar un botón, y también pueden recibir notificaciones sobre las últimas ofertas y promociones.

El calendario de reservas permite a los clientes procesar sus pagos tanto online como offline y también permite a los administradores gestionar las reservas, generar facturas, cupones y más desde el panel de control. El sistema también proporciona vistas de calendario únicas con cuatro diseños diferentes (vistas de 1, 3, 6 y 12 meses) para mantener a los usuarios actualizados sobre las reservas disponibles.

Traveling Booking System

gestionar tu negocio de viajes de forma eficaz

Para gestionar tu negocio de viajes de forma eficaz, integra este sistema de gestión de agencias de viajes en tu aplicación y experimenta la forma rápida y sin esfuerzo de gestionar todas las reservas de los clientes. Es un sistema ágil y fácil de usar que permite a tus clientes comprobar los destinos y paquetes disponibles desde la facilidad de sus casas. Es una de las mejores maneras de atraer a más clientes en la temporada de vacaciones, ya que proporciona una forma avanzada y sin complicaciones de interactuar con tus clientes y ofrecerles ofertas para lugares de vacaciones de moda.

Este sistema está construido sobre CodeIgniter con fuertes protocolos de seguridad que te ayudan a proteger tu aplicación de inyecciones SQL, XSS, CSRF, y otros ataques maliciosos. Proporciona una interfaz simple que incluso una persona no técnica puede utilizar para sus proyectos de viaje.

Observaciones finales

Esto nos lleva al final de este artículo, en el que se destacan algunos de los scripts de reserva en PHP más utilizados en el mercado. Siendo desarrollador, es tu prioridad construir una aplicación que cumpla con todas las características requeridas del cliente(s), especialmente si es un sistema de reservas comercial en PHP. Usando estos scripts, no sólo puedes construir la aplicación requerida a tiempo, sino que también puedes reducir tu carga de trabajo para concentrarte en otras tareas más importantes como el diseño UX de tu web.

Si todavía tienes alguna pregunta o sugerencia con respecto a este artículo, no dudes en publicarla a continuación en la sección de comentarios.

Como hacer web scraping en php

Como hacer web scraping en php

Herramientas o bibliotecas para hacer web scraping en php

Como hacer web scraping. Si estás empezando con el web scraping, sigue leyendo este artículo en donde te explico que librerías o herramientas existen en PHP que te ayudarán con esta tarea!

El Web scraping es algo que los desarrolladores necesitan realizar a diario. Puede haber diferentes necesidades en lo que se refiere a cada tarea de scraping. Podría ser desde el control del precio de un producto o el de su stock.

En el desarrollo de backend, el web scraping es muy popular. Hay gente que sigue creando analizadores y scrapers de calidad.

En este post, exploraremos algunas de las bibliotecas que pueden permitir el scraping de sitios web y el almacenamiento de datos de una manera que podría ser útil para tus necesidades inmediatas.

En PHP, se puede hacer scraping con algunas de estas librerías:

1. Goutte web scraping

La librería Goutte es genial, ya que le puede dar un soporte increíble en cuanto a cómo scrapear contenido usando PHP. Está basado en el marco de Symfony. Goutte es una biblioteca de rastreo web y de scraping web. Es útil porque proporciona APIs para rastrear sitios web y scrapear datos de las respuestas HTML/XML.
Goutte tiene licencia bajo la licencia del MIT.

Características:
Funciona bien con grandes proyectos.
Está basado en OOP.
Tiene una velocidad de análisis media.

Requisitos:
Goutte depende de PHP 5.5+ y Guzzle 6+.

Documentación
https://goutte.readthedocs.io/en/latest/

Obten más información:
https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte

2. Simple HTML DOM

Está escrito en PHP5+,  HTML DOM es muy bueno porque te permite acceder y usar HTML de forma bastante fácil y cómoda. Con él, puedes encontrar las etiquetas en una página HTML con selectores bastante parecidos a jQuery.

Puede scrapear el contenido de HTML en una sola línea. No es tan rápido como algunas de las otras bibliotecas.
Simple HTML DOM está licenciado bajo la licencia MIT.

Características:
Soporta HTML no válido.

Requisitos:
Requiere PHP 5+.

Documentación
http://simplehtmldom.sourceforge.net/manual.htm

Obtenga más información:
http://www.prowebscraper.com/blog/web-scraping-using-php/

3. htmlSQL (Como hacer web scraping)

Básicamente, es una librería PHP experimental. Es útil porque te permite acceder a valores HTML con una sintaxis similar a la de SQL. Lo que esto significa es que no es necesario escribir funciones complejas o expresiones regulares para scrapear valores específicos.

Si eres alguien a quien le gusta SQL, también te encantará esta librería experimental. Lo útil es que se puede aprovechar para cualquier tipo de tarea variada y analizar una página web con bastante rapidez. Aunque dejó de recibir actualizaciones/soporte en 2006, htmlSQL sigue siendo una biblioteca fiable para el análisis y el scraping. htmlSQL está licenciado bajo la licencia BSD.

Características:
Proporciona un análisis relativamente rápido, pero tiene una funcionalidad limitada.

Requisitos:
Cualquier sabor de PHP4+ debería ser suficiente.
Clase PHP Snoopy – Versión 1.2.3 (opcional – requerido para transferencias web).

Documentación:
https://github.com/hxseven/htmlSQL

Obten más información:
https://github.com/hxseven/htmlSQL/tree/master/examples

4. cURL (Como hacer web scraping)

cURL es conocido como una de las bibliotecas más populares (un componente PHP incorporado) para extraer datos de páginas web. No es necesario incluir archivos y clases de terceros, ya que se trata de una librería PHP estandarizada.

Requisitos:
Cuando quieras usar las funciones cURL de PHP, todo lo que necesita hacer es instalar el paquete ” libcurl. Necesitarás la versión 7.10.5 o posterior de libcurl.

Documentación
http://php.net/manual/ru/book.curl.php

Obten más información:
http://scraping.pro/scraping-in-php-with-curl/

5. Requests

Requests es una biblioteca HTTP escrita en PHP. Está basado en la API de la excelente librería Requests Python. Requests te permite enviar incidencias HEAD, GET, POST, PUT, DELETE y PATCH HTTP. Con la ayuda de requests, puedes añadir cabeceras, datos de formulario, archivos de múltiples partes y parámetros con órdenes simples, y acceder a los datos de respuesta de la misma manera. Requests tiene licencia ISC.

Características:
Dominios y URLs internacionales.
Verificación estilo navegador SSL.
Autenticación básica/digestiva.
Descompresión automática.
Tiempos muertos de conexión.

Requisitos:
Requisitos de la versión 5.2+ de PHP

Documentación :
https://github.com/rmccue/Requests/blob/master/docs/README.md

HTTPful web scraping

HTTPful es una librería PHP bastante sencilla. Es buena porque es enlazable y legible. Su objetivo es hacer que HTTP sea legible. La razón por la que se considera útil es porque permite al desarrollador centrarse en la interacción con las APIs en lugar de tener que navegar por las páginas curl set_opt. También es un gran cliente PHP REST. HTTPful está licenciado bajo la licencia MIT.

Características:
Soporte del método HTTP legible (GET, PUT, POST, DELETE, HEAD, PATCH y OPTIONS).
Encabezados personalizados.
Análisis automático “inteligente”.
Serialización automática de la carga útil.
Autentificación básica
Autores de certificados del lado del cliente.
Solicitud de “Plantillas”.

Requisitos:
Requiere PHP versión 5.3+

Documentación:
http://phphttpclient.com/docs/

7. Buzz

Buzz es útil ya que es una librería bastante ligera y te permite emitir peticiones HTTP. Además, Buzz está diseñado para ser simple y tiene las características de un navegador web. Buzz tiene licencia bajo la licencia del MIT.

Características:
API simple.
Alto rendimiento.
Requisitos:
Requiere PHP versión 7.1.

Documentación:
https://github.com/kriswallsmith/Buzz/blob/master/doc/index.md

Obten más información:
https://github.com/kriswallsmith/Buzz/tree/master/examples

8. Guzzle web scraping

Guzzle es útil porque es un cliente HTTP en PHP que te permite enviar peticiones HTTP de una manera fácil. También es fácil de integrar con servicios web.

Características:
Tiene una interfaz simple que te ayuda a construir cadenas de consulta, peticiones POST, streaming de grandes cargas, streaming de grandes descargas, uso de cookies HTTP, carga de datos JSON, etc.
Puede enviar solicitudes síncronas y asíncronas con la ayuda de la misma interfaz.
Utiliza interfaces PSR-7 para solicitudes, respuestas y flujos. Esto te permite utilizar otras bibliotecas compatibles con PSR-7 con Guzzle.
Puede extraer el contenido HTTP subyacente, permitiéndote escribir un entorno y transmitir código agnóstico; es decir, sin dependencia de cURL, streams PHP, sockets o bucles de eventos sin bloqueo.
El sistema Middleware te permite aumentar y configurar el comportamiento de los clientes.

Requisitos:
Requiere PHP versión 5.3.3+.

Documentación
http://docs.guzzlephp.org/en/stable/

Obten más información:
https://lamp-dev.com/scraping-products-from-walmart-with-php-guzzle-crawler-and-doctrine/958

Si te ha gustado este artículo y quieres empezar a scrapear datos te recomiendo visites Cómo crear un entorno de desarrollo localhost, y si me puedes hacer un favor, recomienda este artículo en las redes sociales:)

Cómo crear un entorno de desarrollo localhost

entorno de desarrollo local

 

Cómo crear un entorno de desarrollo localhost. Aprende a construir sitios web en tu propio ordenador sin tener que acceder al sitio en vivo.

Un entorno de desarrollo local te permite utilizar tu propia máquina para ejecutar tu sitio web, en lugar de utilizar una proporcionada por una empresa de alojamiento web. Puedes personalizar la configuración sin preocuparse de que afecte a tu sitio en directo, así como realizar y probar el desarrollo del sitio antes de cargarlo. Eliminar el riesgo al construir algo hace que el proceso de desarrollo sea mucho menos estresante.

Otra ventaja de trabajar localmente es que no es necesario estar conectado a Internet. Si tienes un wifi lento, te gusta trabajar en el jardín o estás de viaje, no hay necesidad de buscar una señal wifi todo el tiempo.

El tiempo que se pasa en FTP preparando una pagina web y esperando a que el sitio se actualice realmente se acumula a lo largo de un día de desarrollo. Un entorno local te permitirá centrarte en el código y en las partes divertidas de la construcción de sitios web.

Este tutorial asume que estás en un Mac, y el tutorial para empezar con Valet se enfoca en esto. Para una alternativa de PC, pruebe Homestead.

Un conocimiento básico de Terminal es bueno, aunque debería ser capaz de seguirlo, ya que los comandos son bastante simples. Se trata principalmente de conseguir que se instalen y se pongan en marcha los componentes necesarios.

Comenzar entorno de desarrollo localhost

Después de completar este tutorial, habrás configurado PHP, Homebrew y Composer en tu máquina, instalado Valet y aprendido a configurar sitios locales en entorno de desarrollo localhost.

01. Instalar Homebrew

El primer paso aquí es instalar Homebrew. Escriba el siguiente comando en su Terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

02. Instalar PHP

02. Instalar PHP

A continuación necesitamos instalar/actualizar a PHP7, así que comprueba usando php -v. Si necesitas instalar, puede escribir:

brew install homebrew/php/php70

Si reinicias tu ventana Terminal y escribes php -v de nuevo, debería mostrar v7 instalado.

03. Instalar Composer

Necesitarás descargar Composer, y luego ponerlo en un directorio que sea parte de su PATH.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

04. Muévete a tu PATH (Ruta de acceso)

Ahora mueve Composer a un directorio dentro de tu ruta. Una vez hecho esto, puedes comprobar tu acceso a él escribiendo composer-v.

mv composer.phar /usr/local/bin/composer

05. Comprueba tu PATH (ruta de acceso)

Si escribes echo $PATH, verás lo que contiene. Si no lo hace, escribe lo siguiente para agregarlo.

export PATH=$PATH:~/.composer/vendor/bin

06. Requiere Valet globalmente

Ahora que tenemos las piezas instaladas, podemos continuar con la instalación de Valet. Primero, vamos a verificar que nada esté usando el puerto 80. Escribe lo siguiente, y si no devuelve nada, estamos listos para empezar.

netstat -an | grep "\.80" | grep LISTEN

07. Instalación de Valet

Usamos Composer para instalar el paquete Valet por nosotros, y luego podemos ejecutar la instalación de valet.

Composerglobal require laravel/valet
valet install

08. Directorios Park/unpark

Crea un directorio para tus sitios de desarrollo y díle a Valet que los sirva. Ten en cuenta que las carpetas dentro de este pueden ser accedidas como subdominios.

# move to your projects directory
cd ~/projects/valet/
valet park

09. Olvídate de los directorios

De la misma manera que para estacionar, si ya no deseas que una carpeta sirva a través de Valet, simplemente usa el comando olvidar desde dentro del directorio.

with spaces //
valet forget

10. Enlace/desenlace de directorios

También puedes enlazar a directorios. Esto te permite elegir el nombre que utiliza.

cd ~/projects/valet/subproject/
# link the subproject directory to make it accessible at HYPERLINK "http://subproject.dev" \hhttp://subproject.dev
valet link subproject

11. Comparte tu sitio con el mundo

Puedes compartir tu url de desarrollo local con el mundo exterior. En el directorio de tu proyecto, escriba valet share y se creará una URL que podrás utilizar.

12. Uso de una base de datos

Necesitarás instalar la base de datos de tu elección – para WordPress, podemos seguir adelante e instalar MySQL.

brew install mysql

13. Elija una herramienta de base de datos

Con una base de datos configurada, una herramienta para importar y exportar datos es útil, ya que no tenemos phpMyAdmin o similar con Valet.

14. Descargar Sequel Pro

Descargar Sequel Pro

Estamos utilizando Sequel Pro, ya que ofrece una interfaz sencilla. Puedes descargarlo aquí.

15. Conectar la base de datos

Utilizando la configuración predeterminada de MySQL, agrega los siguientes detalles y prueba tu conexión.

Host: 127.0.0.1
Username: root
Password: (leave blank)

16. Configurar un sitio de WordPress

16. Configurar un sitio de WordPress

Con todo en su lugar, configura un sitio de WordPress. Cree una nueva carpeta dentro de su directorio de Valet e instale WordPress Core.

17. Añadir una base de datos

17. Añadir una base de datos en entorno de desarrollo localhost

En Sequel Pro, crea una nueva base de datos con el mismo nombre que la carpeta que creó. Actualiza el archivo wp-config para adaptarlo.

18. Prueba que todo funciona

Pruebe que todo funciona en el entorno de desarrollo localhost

Ahora, si abres tu navegador y navegas a (tu-carpeta).test deberías ver la pantalla de instalación de WordPress. Sigue a partir de aquí como de costumbre.

19. Llegar más lejos

Valet no es sólo para ejecutar instalaciones de WordPress, sino que fue creado originalmente para el desarrollo de Laravel. Ya sea que estés construyendo algo a medida en PHP o usando un framework, puedes crear fácilmente un nuevo sitio creando un nuevo directorio para él en tu carpeta raíz.

Háblame ;)
¿Necesitas ayuda?
Hola! Necesitas ayuda? hablemos por WhatsApp :)