1. Go to this page and download the library: Download kiwilan/php-http-pool library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
kiwilan / php-http-pool example snippets
use Kiwilan\HttpPool\HttpPool;
// Key is the identifier, value is the URL
// Array could be associative or not
$urls = [
2 => 'https://jsonplaceholder.typicode.com/posts',
5 => 'https://jsonplaceholder.typicode.com/comments',
10 => 'https://jsonplaceholder.typicode.com/albums',
16 => 'https://jsonplaceholder.typicode.com/photos',
24 => 'https://jsonplaceholder.typicode.com/todos',
];
// Create a pool with an array of URLs and some options
$pool = HttpPool::make($urls)
->setMaxCurlHandles(100)
->setMaxRedirects(10)
->setTimeout(30)
->setConcurrencyMaximum(5)
->setPoolLimit(250)
->setHeaders([
'User-Agent' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
])
;
// Get original requests converted for `HttpPool`
$requests = $pool->getRequests();
$requestCount = $pool->getRequestCount();
// Execute pool
$res = $pool->execute();
// Get responses
$responses = $res->getResponses();
// Get responses as array
$responsesArray = $res->toArray();
// Get only fullfilled responses
$fullfilled = $res->getFullfilledResponses();
// Get only rejected responses
$rejected = $res->getRejectedResponses();
// Counts
$fullfilledCount = $res->getFullfilledCount();
$rejectedCount = $res->getRejectedCount();
// Get execution time
$executionTime = $res->getExecutionTime();
// Get pool instance
$pool = $res->getPool();
use Kiwilan\HttpPool\HttpPool;
$pool = HttpPool::make($urls);
$res = $pool->execute();
// Get all responses (fullfilled and rejected)
$responses = $res->getResponses();
// Get only fullfilled responses
$fullfilled = $res->getFullfilled();
// Get only rejected responses
$rejected = $res->getRejected();
// Get responses count
$responsesCount = $res->getResponsesCount();
// Get fullfilled responses count
$fullfilledCount = $res->getFullfilledCount();
// Get rejected responses count
$rejectedCount = $res->getRejectedCount();
// Get execution time
$executionTime = $res->getExecutionTime();
// Get if pool is failed
$isFailed = $res->isFailed();
// Get errors
$errors = $res->getErrors();
use Kiwilan\HttpPool\HttpPool;
$pool = HttpPool::make($urls, throwErrors: false);
$responses = $res->getResponses();
$first = $responses->first(); // HttpPoolResponse
$first->getId(); // Get original ID
$first->getMetadata(); // Get HttpPoolResponseMetadata
$first->getGuzzle(); // Get original GuzzleHttp\Psr7\Response
$first->getBody(); // Get HttpPoolResponseBody
$first->isSuccess(); // Get if response is success
$first->isBodyAvailable(); // Get if response body exists
$metadata = $first->getMetadata();
$statusCode = $metadata->getStatusCode(); // 200, 404, 500...
$status = $metadata->getStatus(); // Guzzle pool status: fullfilled, rejected
$reason = $metadata->getReason(); // OK, Not Found, Internal Server Error...
$isSuccess = $metadata->isSuccess(); // 200 <= $statusCode < 300
$isFailed = $metadata->isFailed(); // status code is not success
$isJson = $metadata->isJson(); // is a valid JSON
$isXml = $metadata->isXml(); // is a valid XML
$server = $metadata->getServer(); // Server header
$date = $metadata->getDate(); // Date header
$contentType = $metadata->getContentType(); // Content-Type header
$request = $metadata->getRequest(); // Original request
$headers = $metadata->getHeaders(); // Original headers as array<string, string>
$header = $metadata->getHeader('Content-Type'); // Extract header (safe method)
$body = $first->getBody();
$isExists = $body->isExists(); // Get if body exists
$contents = $body->getContents(); // Get body contents
$json = $body->getJson(); // Get body as JSON
$xml = $body->getXml(); // Get body as XML
$isBinary = $body->isBinary(); // Get if body is binary
$isJson = $body->isJson(); // Get if body is a valid JSON
$isXml = $body->isXml(); // Get if body is a valid XML
$isString = $body->isString(); // Get if body is a string
$toArray = $body->toArray(); // Get body as array
HttpPool::make($urls)
->setUrlAsIdentifier();
HttpPool::make($urls)
->allowPrintConsole();
HttpPool::make($urls)
->allowMemoryPeak('2G');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.