Скриншот Google PageSpeed ​​Insights API в файл

Я пытался получить скриншот из API, но когда я декодирую изображение и сохраняю его, я получаю сломанное изображение. Ниже приведен код, который я использую. Я создал tinyurl для образца файла, содержащего ответ Google, если вы хотите проверить его.

$name = 'test';
$result = file_get_contents('http://tinyurl.com/q4smyod');
$result = json_decode($result, true);
$decoded=base64_decode($result['screenshot']['data']);
file_put_contents('img/'.$name.'.jpg',$decoded);

5

Решение

Как уже упоминалось в моем комментарии, проблема вызвана ошибкой шифрования Google при работе с PHP-API. Если у вас возникла эта проблема, просто используйте следующие функции замены, чтобы исправить кодировку.

$data    = str_replace('_','/',$result['screenshot']['data']);
$data    = str_replace('-','+',$data);
$decoded = base64_decode($data);
14

Другие решения

Это должно помочь вам приблизиться к вашей цели. Вы не определили имя, и ваша json_decoding была немного странной:

<?php
error_reporting(-1);
ini_set('display_errors', 'On');
$result = file_get_contents('http://tinyurl.com/q4smyod');
$name = 'test2';
$result = json_decode($result, true);

$decoded = base64_encode($result['screenshot']['data']);
file_put_contents($name.'.jpg',$decoded);

?>
0

По вопросам рекламы [email protected]