+
80
-

php如何实现图形验证码内容?

php

php如何实现图形验证码内容?


网友回复

+
0
-

可以使用大模型实现

我们以gemini为例,先注册gemini并获取apikey

composer require google-gemini-php/clientcomposer require guzzlehttp/guzzle

注意,需要php8,1以上的环境才能使用

下面是php调用gemini的api实现问答代码

<?php

declare(strict_types=1);

require_once '../vendor/autoload.php';

$apiKey = 'AIzaSyAPxxxxxxxxxxxxxxx_uEpw';
$client = \Gemini::client($apiKey);
$result = $client->geminiPro()->generateContent('PHP语言是什么?');

echo $result->text() . PHP_EOL; 

那么验证码图片识别如下:

<?php

declare(strict_types=1);

require_once '../vendor/autoload.php';

use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;

$apiKey = 'AIzaSyAPLiuNxxxxxxxxxxxxxxx_uEpw';
$client = \Gemini::factory()
    ->withApiKey($apiKey)
    ->withBaseUrl('https://gemini.ailard.com/v1/')
    ->withHttpClient($client = new \GuzzleHttp\Client([]))
    ->withStreamHandler(fn(RequestInterface $request): ResponseInterface => $client->send($request, [
        'stream' => true // Allows to provide a custom stream handler for the http client.
    ]))
    ->make();

$result = $client
    ->geminiProVision()
    ->generateContent([
        'I will provide you with an image CAPTCHA, please recognize the content inside the CAPTCHA and output the text',
        new \Gemini\Data\Blob(
            mimeType: \Gemini\Enums\MimeType::IMAGE_JPEG,
            data: base64_encode(
                file_get_contents('./captcha01.jpg')
            )
        )
    ]);

echo $result->text() . PHP_EOL;

我知道答案,我要回答