Download the PHP package hamaadraza/php-impersonate without Composer
On this page you can find all versions of the php package hamaadraza/php-impersonate. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download hamaadraza/php-impersonate
More information about hamaadraza/php-impersonate
Files in hamaadraza/php-impersonate
Package php-impersonate
Short Description A PHP library for making HTTP requests with browser impersonation
License MIT
Homepage https://github.com/hamaadraza/php-impersonate
Informations about the package php-impersonate
PHP-Impersonate
A PHP library for making HTTP requests with browser impersonation. This library uses curl-impersonate to mimic various browsers' network signatures, making it useful for accessing websites that may detect and block automated requests.
Installation
Install via Composer:
System Requirements
- PHP 8.0 or higher
Basic Usage
API Reference
Static Methods
The library provides convenient static methods for making requests:
Instance Methods
You can also create an instance of the client for more configuration options:
Response Methods
The Response class provides several methods for working with HTTP responses:
Working with Headers
Most headers have a single value, so header() is all you need:
Some headers are legitimately repeated by the server — most commonly Set-Cookie.
Per RFC 6265 §4.1.1, cookie values
must not be folded into a single comma-separated string, so header('Set-Cookie') would
silently drop all but the first cookie. Use headerAll() instead:
headers() returns the full map when you need to inspect everything at once:
Key point: Each header name maps to an array of values (string[]), not a single string. This correctly handles HTTP responses where headers like Set-Cookie can appear multiple times.
Browser Options
PHP-Impersonate supports mimicking various browsers:
chrome99_android(default)chrome99chrome100chrome101chrome104chrome107chrome110chrome116chrome119chrome120chrome123chrome124chrome131chrome131_androidchrome133achrome136edge99edge101firefox133firefox135safari153safari155safari170safari172_iossafari180safari180_iossafari184safari184_iossafari260safari260_iostor145
Example:
Timeouts
You can configure request timeouts:
Proxy Configuration
You can route requests through a proxy server using the curlOptions parameter:
Basic Proxy Usage
Proxy Options
The following proxy-related curl options are supported:
| Option | Description | Example |
|---|---|---|
proxy |
Proxy server address | 'http://127.0.0.1:8080' or 'http://proxy.example.com:3128' |
proxy-user |
Proxy authentication credentials | 'username:password' |
SOCKS Proxy
You can also use SOCKS proxies by specifying the protocol:
Using Proxy with Static Methods
For one-off requests with a proxy, create an instance and use the instance methods:
Advanced Examples
JSON API Request
Error Handling
Data Formats for POST, PUT and PATCH Requests
PHP-Impersonate supports sending data in different formats:
Form Data
By default, data is sent as form data (application/x-www-form-urlencoded):
JSON Data
You can send data as JSON by specifying the Content-Type header:
For PUT and PATCH requests, JSON is used as the default format.
Testing
Run the test suite:
License
This project is licensed under the MIT License - see the LICENSE file for details.