true, 'errors' => [], 'warnings' => [], 'blocks' => [], 'total_blocks' => 0 ]; if (empty($html_content)) { $results['valid'] = false; $results['errors'][] = 'Le contenu est vide'; return $results; } // Vérifier que ça commence par un commentaire de bloc WordPress $trimmed = trim($html_content); if (strpos($trimmed, '/', $html_content, $matches, PREG_SET_ORDER); foreach ($matches as $index => $match) { $block_name = $match[1]; $json_str = $match[2]; // Décoder le JSON $decoded = json_decode($json_str, true); if ($decoded === null && json_last_error() !== JSON_ERROR_NONE) { // Essayer de corriger le JSON échappé $fixed_json = stripslashes($json_str); $decoded_fixed = json_decode($fixed_json, true); $error_info = [ 'block' => $block_name, 'position' => strpos($html_content, $match[0]), 'error' => 'JSON invalide: ' . json_last_error_msg(), 'json' => $json_str, 'is_escaped' => false, 'can_be_fixed' => false, 'fixed_json' => null ]; // Vérifier si le JSON contient des guillemets échappés if (strpos($json_str, '\\"') !== false || strpos($json_str, '\\\'') !== false) { $error_info['is_escaped'] = true; if ($decoded_fixed !== null && json_last_error() === JSON_ERROR_NONE) { $error_info['can_be_fixed'] = true; $error_info['fixed_json'] = $fixed_json; $fixes[] = [ 'block' => $block_name, 'original' => $json_str, 'fixed' => $fixed_json ]; } } $errors[] = $error_info; } } return ['errors' => $errors, 'fixes' => $fixes]; } // Fonction pour corriger automatiquement le HTML échappé function fix_escaped_html($html_content) { // Retirer les backslashes des guillemets dans les JSON des commentaires $fixed = preg_replace_callback( '//', function($matches) { $block_name = $matches[1]; $json_str = $matches[2]; $fixed_json = stripslashes($json_str); return ""; }, $html_content ); return $fixed; } // ============================================ // ZONE DE TEST - Collez votre contenu ici // ============================================ $test_content = ''; // Collez votre HTML sérialisé ici, ou laissez vide pour utiliser le paramètre GET // Si exécuté dans WordPress, vérifier les paramètres GET if (isset($_GET['content']) && !empty($_GET['content'])) { $test_content = urldecode($_GET['content']); } elseif (!empty($test_content)) { // Utiliser le contenu défini ci-dessus } else { // Exemple de contenu pour test $test_content = '

Test paragraph

'; } ?> Testeur de Blocs WordPress

🔍 Testeur de Blocs WordPress

Collez votre contenu HTML sérialisé ici:

📊 Résultats du Test

⚠️ Correction automatique appliquée : Les guillemets échappés (`\"`) ont été corrigés dans les commentaires JSON
bloc(s) corrigé(s)
✅ Le contenu est valide ! ❌ Le contenu contient des erreurs
Nombre total de blocs:

❌ Erreurs détectées:

⚠️ Avertissements:

📝 Erreurs JSON dans les commentaires:

Bloc:
Erreur:
⚠️ JSON échappé détecté (guillemets avec backslashes)
✅ Correction automatique possible
JSON original (échappé):
JSON corrigé:
JSON problématique:
JSON problématique:

✅ Contenu corrigé (à utiliser):

📋 Copiez ce contenu corrigé et utilisez-le à la place de l'original

📦 Détails des Blocs

Bloc #:
Inner Blocks:
Inner Content items:
Erreurs:
Avertissements:
Attributs (cliquez pour voir)