PHPackages                             randomsymbols/fsubmit - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. randomsymbols/fsubmit

ActiveLibrary[HTTP &amp; Networking](/categories/http)

randomsymbols/fsubmit
=====================

Submit HTML forms from PHP

2.9.1(4y ago)2831LGPL-3.0-or-laterPHPCI failing

Since May 23Pushed 3y ago1 watchersCompare

[ Source](https://github.com/randomsymbols/fsubmit)[ Packagist](https://packagist.org/packages/randomsymbols/fsubmit)[ Docs](https://github.com/randomsymbols/fsubmit)[ RSS](/packages/randomsymbols-fsubmit/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (5)Dependencies (8)Versions (6)Used By (0)

fsubmit
=======

[](#fsubmit)

Have you ever tried to submit an HTML form with cUrl? You have to clearly state all the fields you submit and what values they have.

In real life, we most often only want to fill in one or two fields without even thinking about what other fields are.

If you hardcode the other fields' values into your cUrl request, what if the form changes over time? You code will be broken.

To keep you code adoptable to the changes of the form, you will have to download the form as is first, parse its fields and values, change/add values to the right fields and submit it with cUrl.

It causes a lot of questions if you do not know how HTML forms work. For example, if there is a select tag with several options, which one will be submitted as the value for the field if none is selected? What if the option tag has no value attribute?

An Internet browser does the job for us when we submit a form. We do not have to bother about hidden fields or any other fields at all. The library provides the same functionality for PHP.

Requirements
------------

[](#requirements)

PHP 7.4 and later.

Composer
--------

[](#composer)

You can install the library via [Composer](http://getcomposer.org/). Run the following command:

```
composer require randomsymbols/fsubmit
```

To use the library, use composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):

```
require_once('vendor/autoload.php');
```

Dependencies
------------

[](#dependencies)

The library requires the following extensions in order to work properly:

- [`curl`](https://secure.php.net/manual/en/book.curl.php)
- [`openssl`](https://www.php.net/manual/en/openssl.installation.php)
- [`PHP Simple HTML DOM Parser`](https://github.com/voku/simple_html_dom)

If you use Composer, these dependencies should be handled automatically. If you install manually, make sure these extensions are available.

Getting Started
---------------

[](#getting-started)

```
use Fsubmit\Form;

$form = Form::fromUrl('https://www.google.com');
$form->setParams(['q' => 'John 3:16']);
$answer = $form->submit();
echo $answer['content'];
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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 ~168 days

Total

5

Last Release

1510d ago

Major Versions

1.0 → 2.02020-10-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/d5a9afd65905dda659f21514397fe7c67597765cd87c4391c308a4230a7b7425?d=identicon)[randomsymbols](/maintainers/randomsymbols)

---

Top Contributors

[![randomsymbols](https://avatars.githubusercontent.com/u/22531452?v=4)](https://github.com/randomsymbols "randomsymbols (24 commits)")

---

Tags

curlhtml-forms

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/randomsymbols-fsubmit/health.svg)

```
[![Health](https://phpackages.com/badges/randomsymbols-fsubmit/health.svg)](https://phpackages.com/packages/randomsymbols-fsubmit)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

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