2017 © Pedro PelĂĄez
 

library guzzle-transcoder

Guzzle plugin that converts responses to UTF-8

image

fossar/guzzle-transcoder

Guzzle plugin that converts responses to UTF-8

  • Wednesday, March 7, 2018
  • by jtojnar
  • Repository
  • 1 Watchers
  • 0 Stars
  • 740 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 2 Open issues
  • 3 Versions
  • 17 % Grown

The README.md

guzzle-transcoder

Packagist Version, (*1)

This package provides a Guzzle 6/7 middleware that transparently converts documents obtained by Guzzle from its native encoding to UTF-8 (or any other specified encoding). It supports the following features:, (*2)

  • Detection of charset from [Content-Type] HTTP header.
  • Detection of charset from [meta element] in HTML document.
  • Detection of charset from XML declaration in RSS and other XML documents.
  • Updating the Content-Type header in the Response object according to target encoding.
  • Updating the metadata in the Response body according to target encoding (not enabled by default).

Installation

It is recommended to install the library using Composer:, (*3)

composer require fossar/guzzle-transcoder

Usage

Basic example

, (*4)

use Fossar\GuzzleTranscoder\GuzzleTranscoder;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;

$stack = HandlerStack::create();
$stack->push(new GuzzleTranscoder);
$client = new Client(['handler' => $stack]);

$url = 'https://www.myseosolution.de/scripts/encoding-test.php?enc=iso'; // request website with iso-8859-1 encoding
$req = $client->get($url);
echo $req->getBody();

Full example

, (*5)

use Fossar\GuzzleTranscoder\GuzzleTranscoder;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;

$stack = HandlerStack::create();
$stack->push(new GuzzleTranscoder([
    'targetEncoding' => 'windows-1252',
    // Swap the default settings:
    'replaceHeaders' => false,
    'replaceContent' => true,
]));
$client = new Client(['handler' => $stack]);

$url = 'https://www.myseosolution.de/scripts/encoding-test.php?enc=iso'; // request website with iso-8859-1 encoding
$req = $client->get($url);
echo $req->getHeaderLine('Content-Type') . "\n"; // HTTP header will remain unchanged
echo $req->getBody();

Credits

It is largely based on Pascal Landau’s guzzle-auto-charset-encoding-subscriber and web-utility libraries., (*6)

We are using Transcoder library. This allows us to fall back to iconv when mbstring is not available or an encoding is not supported by it., (*7)

The source code is available under the terms of MIT license, (*8)

The Versions

07/03 2018

dev-lazy-transcoder

dev-lazy-transcoder

Guzzle plugin that converts responses to UTF-8

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Tojnar

13/02 2017

dev-master

9999999-dev

Guzzle plugin that converts responses to UTF-8

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Tojnar

13/02 2017

0.0.3

0.0.3.0

Guzzle plugin that converts responses to UTF-8

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jan Tojnar