Plug-in for Guzzle that strips BOMs from server responses

0.1.3 2013-09-24 02:34 UTC


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


In your project's composer.json file:

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

In your code:

$client = new Guzzle\Http\Client('');

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

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

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

$data = $response->json();


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.