Download the PHP package phpcfdi/image-captcha-resolver without Composer

On this page you can find all versions of the php package phpcfdi/image-captcha-resolver. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package image-captcha-resolver

phpcfdi/image-captcha-resolver

Source Code Packagist PHP Version Support Discord Latest Version Software License Build Status Reliability Maintainability Code Coverage Violations Total Downloads

Conectores para resolver captchas de imágenes

:us: The documentation of this project is in spanish as this is the natural language for the intended audience.

Acerca de phpcfdi/image-captcha-resolver

Esta librería contiene conectores con algunos servicios populares o de prueba para resolver captchas.

Es utilizado en algunos proyectos de PhpCfdi.

Instalación

Usa composer

Es posible que para su correcta implementación requiera también instalar algunos paquetes adicionales. Vea https://docs.php-http.org/en/latest/clients.html

Sin embargo, si lo que está desarrollando es una librería debería usar como dependencia de cliente el paquete php-http/mock-client y cualquier fábrica de mensajes (en composer.json:require-dev).

Uso básico

Llamar a resolver un captcha

Para este ejemplo se asume que ya existe un resolvedor de captchas en $resolver y que la imagen del captcha se encuentra como imagen embedida y su contenido en $theImgElementSrcAtributte.

Creación de un resolvedor de captchas basado en Anti-Captcha

Para crear el resolvedor se puede hacer de dos formas: de manera específica y por descubrimiento.

Servicio: https://anti-captcha.com

Creación de un resolvedor de captchas basado en Local Captcha Resolver

Para crear el resolvedor se puede hacer de dos formas: de manera específica y por descubrimiento.

Servicio: https://github.com/eclipxe13/captcha-local-resolver

Creación de un resolvedor de captchas basado en línea de comandos

La implementación dependerá siempre de la herramienta que se esté utilizando, es probable que fabrique su propio punto de entrada a la herramienta para que devuelva el exit code correcto y la respuesta.

Esta herramienta podría ser útil en caso de que el captcha se pueda resolver utilizando alguna herramienta como tesseract.

El siguiente ejemplo supone que tiene la imagen del captcha a resolver en $image y que existe un commando llamado my-captcha-breaker que se le entrega una imagen y devuelve en el último renglón de la salida la respuesta del captcha.

Resolvedores

Multiresolvedor

El resolvedor MultiResolver es en sí mismo un resolvedor que intenta resolver el captcha usando un conjunto predefinido de resolvedores. Podría ser útil para intentar resolver utilizando diferentes estrategias o reintentando con un mismo resolvedor el número de veces en las que esté incluído.

Resolvedores para pruebas

El resolvedor CaptchaLocalResolver usa servicio de resolución de captchas local y es comúnmente utilizado para pruebas.

También podría usar el resolvedor ConsoleResolver en donde se almacena en un archivo predefinido la imagen del captcha a resolver y se espera que escriba la ventana en la misma terminal donde está ejecutando el proceso. Solo es útil si puede escribir la respuesta. Si no se recibe la respuesta en un tiempo predeterminado el resolvedor fallará lo tomará como una respuesta vacía.

Si está haciendo pruebas unitarias, la mejor alternativa es usar el resolvedor MockResolver, que se construye con respuestas prestablecidas CaptchaAnswerInterface o excepciones UnableToResolveCaptchaException y falla con una excepción OutOfRangeException si se le pide una respuesta y ya no tiene más.

Nuevos resolvedores

Si ya tienes contratado un servicio de solución de captchas o deseas implementar uno, por ejemplo, basado en tesseract, debes implementar la interfaz ResolverInterface en tu proyecto.

Si el resolvedor puede beneficiar a toda la comunidad entonces haz tu solicitud de que se incluya en esta librería y con gusto lo evaluaremos, tomando en cuenta las dependencias y las pruebas.

Si el servicio requiere de registrar una nueva cuenta, por favor ponte en contacto con nosotros y podemos crear el resolvedor. Considera que será necesario que patrocines la suscripción para poder hacer pruebas de funcionamiento punto a punto.

Especificación de clases e interfaces

CaptchaImage

Contiene la imagen en base64 de la imagen, se puede construir desde un archivo, desde datos binarios, desde datos binarios codificados como base64 o desde un texto de imagen html embedido.

También contiene métodos para expresar la imagen u obtener el tipo MIME:

También se puede expresar como JSON o como string pues implementa Stringable y JsonSerializable y si lo desea, puede establecer su propia implementación usando CaptchaImageInterface.

CaptchaResolverInterface

Contiene un único método de resolución en donde toma un CaptchaImageInterface y entrega un CaptchaAnswer: CaptchaResolverInterface::resolve(CaptchaImageInterface $image): CaptchaAnswerInterface.

Hay diferentes implementaciones y se pueden agregar más a esta librería o en una librería independiente.

CaptchaAnswer

Contiene la respuesta del captcha como un valor de texto, no puede ser una cadena vacía.

La respuesta se obtiene con el método CaptchaAnswer::getValue(): string.

Y se puede comparar contra cualquier otro valor usando CaptchaAnswer::equalsTo($value): bool.

También se puede expresar como JSON o como string pues implementa Stringable y JsonSerializable y si lo desea, puede establecer su propia implementación usando CaptchaAnswerInterface.

HttpClientInterface y HttpClient

Este método es un adaptador para facilitar las comunicaciones de HTTP con el exterior.

La implementación actual contiene muy pocos métodos y serán agregados nuevos conforme se necesite.

Utiliza los estándares PSR-18 HTTP Client, y PSR-17 HTTP Factories que usan el PSR-7 HTTP message interfaces. Requieren de un cliente http que implemente el PSR-18 y de una librería que implemente PSR-17 para construir los mensajes de tipo Request o Response.

Para que sea fácil poder crear el objeto, se usa el paquete de HTTPlug Discovery php-http/discovery que permite encontrar implementaciones instaladas y utilizarlas.

El método HttpClient::discovery() es el que se utiliza de forma predeterminada para construir el objeto, aunque también se puede crear utilizando el constructor y entregando los objetos necesarios.

Soporte

Puedes obtener soporte abriendo un ticket en Github.

Adicionalmente, esta librería pertenece a la comunidad PhpCfdi, así que puedes usar los mismos canales de comunicación para obtener ayuda de algún miembro de la comunidad.

Compatibilidad

Esta librería se mantendrá compatible con al menos la versión con soporte activo de PHP más reciente.

También utilizamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.

Contribuciones

Las contribuciones con bienvenidas. Por favor lee CONTRIBUTING para más detalles y recuerda revisar el archivo de tareas pendientes TODO y el archivo CHANGELOG.

Copyright and License

The phpcfdi/image-captcha-resolver library is copyright © PhpCfdi and licensed for use under the MIT License (MIT). Please see LICENSE for more information.


All versions of image-captcha-resolver with dependencies

PHP Build Version
Package Version
Requires php Version >=7.3
ext-fileinfo Version *
ext-json Version *
php-http/discovery Version ^1.14
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.1 || ^2.0
symfony/polyfill-php80 Version ^1.23
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package phpcfdi/image-captcha-resolver contains the following files

Loading the files please wait ....