From 75c303bf7c570748a5564de6e266cc40f75b1697 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Tue, 28 Dec 2021 23:49:39 +0100 Subject: [PATCH] Tweeper.php: fix Invalid Character Error when converting Instagram json to XML Converting Instagram json data to XML was failing with the following message: PHP Fatal error: Uncaught DOMException: Invalid Character Error in /usr/share/php/Symfony/Component/Serializer/Encoder/XmlEncoder.php:445 This was caused by some item starting with a number which resulted in invalid XML element names. Remove the items containing the problematic names from the json data before converting to XML. Also stop handling the "knobs" element which does not seem to be there anymore. --- src/Tweeper.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Tweeper.php b/src/Tweeper.php index de1f474..f79bb08 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -312,13 +312,11 @@ class Tweeper { $data = json_decode($matches[1], $assoc = TRUE); - // The "qe" object contains elements which will result in invalid XML - // element names, so remove it. + // Remove items that may contain elements which can result in invalid XML + // element names (for example names starting with a number). unset($data["qe"]); - - // The "knobs" object contains elements with undefined namespaces, so - // remove it to silence an error message. - unset($data["knobs"]); + unset($data["knobx"]); + unset($data["to_cache"]); // Stop here in case Instagram redirected to the login page, this can // happen when too many consecutive requests have been made from the same -- 2.1.4