\n"); } $reader = new \Evomedien\Vitec\Import\ProductXlsxReader(); $parsed = $reader->parse($file); echo "pageType : " . $parsed['pageType'] . "\n"; echo "meta : " . json_encode($parsed['meta'], JSON_UNESCAPED_UNICODE) . "\n"; echo "seo keys : " . implode(' | ', array_keys($parsed['seo'])) . "\n"; echo "components: " . count($parsed['components']) . "\n\n"; printf("%-3s %-34s %-3s %-28s %-9s %-12s\n", '#', 'component', 'occ', 'title', 'body-len', 'cta-in-body'); foreach ($parsed['components'] as $c) { printf( "%-3d %-34s %-3d %-28s %-9d %s\n", $c['order'], mb_substr($c['component'], 0, 34), $c['occurrence'], mb_substr($c['title'], 0, 28), mb_strlen((string)$c['body']), str_contains((string)$c['body'], '| CTA:') ? 'yes' : '-' ); } echo "\n--- Composed sources (g:) ---\n"; foreach (($reader->sources($parsed)['Composed'] ?? []) as $entry) { echo $entry['selector'] . "\n"; echo " label: " . $entry['label'] . "\n"; echo " html : " . $entry['value'] . "\n\n"; } echo "\n--- Related Product Cards, raw ---\n"; foreach ($parsed['components'] as $c) { if ($c['component'] !== 'Related Product Card') { continue; } echo "title: [" . $c['title'] . "]\n"; echo "body : [" . $c['body'] . "]\n"; echo "cta : [" . $c['cta'] . "]\n\n"; }