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. [Utility &amp; Helpers](/categories/utility)
4. /
5. rdx/text-captcha

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

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 2w 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 41% 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

2734d 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)
```

###  Alternatives

[inspheric/nova-defaultable

Default values for Nova fields when creating resources and running resource actions.

51177.6k1](/packages/inspheric-nova-defaultable)[otgs/multilingual-tools

Set of tools related to WPML plugin bundle. Created with tendency to ease WPML compatibility testing process.

39167.2k](/packages/otgs-multilingual-tools)

PHPackages © 2026

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