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:----wCSn5ALOwksOjMixGNivGtnIqqM9itChCsjLxspRFapztfr8b5gKLZVeGCP6dEX64CkMqDEE8sTketxe8yqTVLwEy3Gz5CbygFw8XwlfxJIvCl07PUu3+7G/9cbxtsEXGDGbSexFwX/pOgy0QxPHBB2zlFUNZpM5OkGJvV//w9ipKsFLsZcmLXLCp41YR0cbLFbERxXaJwW0JcEKf5qM8aNfXExzojPMMZFKNj+KwiAh5r4yGQk4vwfq+4las75skAEylzYmSYuJTLxccoV9xcmcHIwYf6C2KpqpLaLox0b3zWGgPxehj9RSy/mgnD1/gktPzfSFKXJT/8ibotg5mu9TCwTbPqmriPNpa8vZ1eqw/LToHnTLdqyjzDN9jFoaxFmpE8n2Bv1vXdjsRiAuAyEbQhzrv7jKhKxigwQqN2ndEO81V+Rk3VKi1nGN33wqc07Oux1tztXr8moTBl5WgA8d7yKnMVK+o2suGNIHO+iVKlObbDB2Yq7sg5f+7UTFjfg0ItEdPUauq0GYK0j/CK0mHpKqpK+AslBPwegr2ZntiLcmIWXRELGTYxOyXvTV2F73eSb8RTusG+ucxoKpMlmDK1GtLT/OCwWO9H0IPJUb+vaqtsTookF5lvLuhWAoZBhHEebbdI+PwQIAucVHYCQwtbeid58umn6i2tIdiRs=----ATTACHMENT:----MTkxOTc4NTAxMjA5OTMyMiA1NzY3ODA2NjIwMDIxOTU3IDkxODMyOTg2NDk3MzA4NTE=