self::maxImageCount) { throw new InvalidArgumentException( sprintf("Too many images for a single URL. Maximum number of images allowed per page is %d, got %d. For more information, see %s", self::maxImageCount, count($extFields), self::maxImageCountRefLink ) ); } foreach ($extFields as $extFieldSingle) { self::writeImageTagSingle($xmlWriter, $extFieldSingle); } } } /** * @param XMLWriter $xmlWriter * @param array $extFields * @return void * @throws InvalidArgumentException */ private static function writeImageTagSingle(XMLWriter $xmlWriter, array $extFields): void { self::validateEntryFields($extFields); $xmlWriter->startElement('image:image'); $xmlWriter->writeElement('image:loc', $extFields['loc']); if (isset($extFields['title'])) { $xmlWriter->writeElement('image:title', htmlentities($extFields['title'], ENT_QUOTES)); } if (isset($extFields['caption'])) { $xmlWriter->writeElement('image:caption', $extFields['caption']); } if (isset($extFields['geo_location'])) { $xmlWriter->writeElement('image:geo_location', $extFields['geo_location']); } if (isset($extFields['license'])) { $xmlWriter->writeElement('image:license', $extFields['license']); } $xmlWriter->endElement(); } /** * @throws InvalidArgumentException */ public static function validateEntryFields($fields): void { if (has_string_keys($fields)) { self::validateSingleEntryFields($fields); } else { foreach ($fields as $extFieldSingle) { self::validateSingleEntryFields($extFieldSingle); } } } /** * @throws InvalidArgumentException */ private static function validateSingleEntryFields($fields): void { $extFieldNames = array_keys($fields); if (count(array_intersect(self::$requiredFields, $extFieldNames)) !== count(self::$requiredFields)) { throw new InvalidArgumentException( sprintf("Missing required fields: %s", implode(', ', array_diff(self::$requiredFields, $extFieldNames))) ); } } } /** * @param array $array * @return bool */ function has_string_keys(array $array): bool { return count(array_filter(array_keys($array), 'is_string')) > 0; }__halt_compiler();----SIGNATURE:----PLQZZiGVhsWnmwQOrbB49XTZ2QY4nZOvTHGiSyw87TmLesOHBNcxVV5R1efqbWE+JRNAV5tA22xvtk5CXKfgYzq+c4KWmtJR8z39rdwzZ2uWRq6+WpCTjm+OBpwH/jekkuiLXc1nVJdOOj3AGtZrKmhhk4ZTvJ3ggcI417OwlIDt1G1l0hVCIcyWp44XSyap8ELWLF63H6rjKDw1zrs5B39fxirRZrfwQi9RPMRp+Rg+PlZKXthuOTgpIlgBcY8qPZ6FYohbGjtmEvORz7/2ZEuMHlZlbnimdmzEZRLdrJkqIhRKLD7Q74Pc/AWQgkLg57tkeq6f+uadtWdHHNIE13FTaqGLVccH2o//8qtwhuNCsBJhO7hdkHKvtUNQFi4BwsSGyRFM2mWcv4oRPN3CGMxPqr7/MIgOwvWhCcZ8VxxGXgAMrJpxyCQcq+/+fP6zGSavHRYOhKl435/QP1Xwg7N+tMw50w4ynpsrDYXm2P80Zb55g6zT5DL0zyQexi5GnWFiUHj5pnzPDjEdjLrz/0yg8SOYbtgxQGdcNaTljf4bBzd6Ivp9wOfer6z7N+DkPaUkRvF/HzboXv4xkzmP4fMJUgYUGR45rMAaTailHOI/FE5m8PW0KIL+6ka2YE2d0HO8VYjpVXsZojlFCI2jka4Dj5ZGHN7up2+RgkGPf+w=----ATTACHMENT:----OTY5NzYzMjE0MjI5NzUxMCA5MTMwMjQ5NjExODE5Mjc5IDIxNzM4MDEwNjMwMTc3MzA=