cviebrock/guzzle-stripbom-plugin

Plug-in for Guzzle that strips BOMs from server responses

Installs: 64

Dependents: 2

Stars: 1

Watchers: 1

Forks: 1

Language: PHP

0.1.3 2013-09-24 02:34 UTC

README

Plug-in for Guzzle that strips BOMs from server responses.

Usage

In your project's composer.json file:

    "require": {
        "cviebrock/guzzle-stripbom-plugin": "0.1.*",
    }

In your code:

$client = new Guzzle\Http\Client('http://example.com');

$client->addSubscriber( new Cviebrock\Guzzle\Plugin\StripBom\StripBomPlugin() );

$request = $client->get('some/request');

$response = $client->send($request);

$data = $response->json();

Why?

Some API services (mostly .NET services) include a BOM in their response body. The BOM is 2-4 bytes that indicate what character encoding the response is in (e.g. UTF8). The problem is that PHP's json_decode() function and SimpleXML classes barf when trying to parse strings that include a BOM. If you are getting a "Can't parse JSON" error when handling a request, but it looks like JSON to you, this is likely what's happening.

This plugin strips those bytes off if they exist, before any JSON/XML parsing.

Kudos? Questions? Complaints?

Please use the issue tracker.