PHPackages                             rdx/text-captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. rdx/text-captcha

ActiveLibrary

rdx/text-captcha
================

1.1(7y ago)020[6 issues](https://github.com/rudiedirkx/text-captcha/issues)MITPHP

Since Jan 3Pushed 5y agoCompare

[ Source](https://github.com/rudiedirkx/text-captcha)[ Packagist](https://packagist.org/packages/rdx/text-captcha)[ RSS](/packages/rdx-text-captcha/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (3)Used By (0)

Text captcha
============

[](#text-captcha)

Create a captcha maker
----------------------

[](#create-a-captcha-maker)

Without any config:

```
$maker = CaptchaMaker::createLocal('en'); // or 'nl'

```

With some custimization:

```
$maker = new CaptchaMaker();
$maker->add(new ArithmeticCaptcha(new ArithmeticTranslatorLocal(__DIR__ . "/lang/arithmetic-$lang.php")), 10);
$maker->add(new WordListCaptcha(new WordListTranslatorLocal(__DIR__ . "/lang/wordlist-$lang.php")), 20);

```

`10` and `20` for a `10:20` chance of an `ArithmeticCaptcha`. You can decide which captcha's to use more. Selection is random, but you decice the relative chance.

Create a random captcha
-----------------------

[](#create-a-random-captcha)

Of a random type:

```
$captcha = $maker->make();

```

Or create the type explicitly, and then the captcha:

```
$type = $maker->random();
$captcha = $type->make();

```

Translations
------------

[](#translations)

`nl` and `en` (US) are included. You can add your own language files and select them easily, by manually adding captcha types with translators.

Or you can get translations from anywhere else, by implementing the correct translators (every captcha type has one), and passing it to the captcha type.

Examples
--------

[](#examples)

- In the list list apple mango arm banana pink horse what's the third fruit?
    - banana
- What's the first color in monkey head mango arm blue cow?
    - blue
- Of list head banana cow kiwi yellow monkey what's the first body part?
    - head
- What is eleven plus zero?
    - 11
    - eleven
- three plus eleven = ?
    - 14
    - fourteen
- Calculate twelve minus seven.
    - 5
    - five

See `demo.php` for making captchas and `lang/*` for translations.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2687d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/78549c1dc5c83ec0201c9afc66762c6d5bbf770291b12bae5a7a65350f950dba?d=identicon)[rudiedirkx](/maintainers/rudiedirkx)

---

Top Contributors

[![rudiedirkx](https://avatars.githubusercontent.com/u/168024?v=4)](https://github.com/rudiedirkx "rudiedirkx (6 commits)")

### Embed Badge

![Health badge](/badges/rdx-text-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/rdx-text-captcha/health.svg)](https://phpackages.com/packages/rdx-text-captcha)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
