pour choisir la méthode d'analyse if (strpos($xmlContent, '') !== false) { // Analyse via Regex (approche nzbanal.php) $rename = '/"(.*?).par2/'; preg_match($rename, $xmlContent, $matchesname); $ngname = $matchesname[1]; if (empty($ngname)) { $rename = '/subject="(.*?).par2/'; preg_match($rename, $xmlContent, $matchesname); $ngname = $matchesname[1]; } // Récupération du mot de passe $repass = '/(.*?)<\/meta>/'; preg_match($repass, $xmlContent, $matchespass); $password = $matchespass[1]; // Récupération de la date $redate = '/date="(.*?)"/'; preg_match($redate, $xmlContent, $matchesdate); $update = $matchesdate[1]; $update = date('d/m/Y', $update); // Calcul de la taille des fichiers RAR/ISO/MKV/MP4 $regexsize = '/(rar|iso|mkv|mp4).*\(\d+\/\d+\) (\d+)/'; preg_match_all($regexsize, $xmlContent, $matchessize, PREG_PATTERN_ORDER, 0); $filesize = formatBytesnzb(array_sum($matchessize[2])); // Extraction des groupes $regroup = '/(.*?)<\/group>/'; preg_match_all($regroup, $xmlContent, $matchesgroup, PREG_PATTERN_ORDER, 0); $resultgroup = array_unique($matchesgroup[1]); $GROUP = ''; $i = '0'; foreach ($resultgroup as $group) { $GROUP .= $group; $i++; } // Création de l'objet JSON pour cette approche $myObj = new stdClass(); $myObj->Name = $ngname; $myObj->Pass = $password; $myObj->Date = $update; $myObj->Groupes = $GROUP; $myObj->Taille = $filesize; $myObj->Taillebit = array_sum($matchessize[2]); $myJSON = json_encode($myObj); echo $myJSON; } else { // Analyse via XML (approche nzbanal_obs.php) $password = 'Aucun'; $xml = @simplexml_load_string($xmlContent, null, 0, "http://www.newzbin.com/DTD/2003/nzb"); if ($xml === false) { die('Erreur lors de l\'analyse du fichier NZB en tant que XML.'); } $maxSegmentsFile = null; $maxSegmentsCount = 0; foreach ($xml->file as $file) { $fileName = (string)$file->attributes()->subject; $fileDate = (string)$file->attributes()->date; $fileGroups = []; $totalSize = 0; $segmentCount = 0; foreach ($file->groups->group as $group) { $fileGroups[] = (string)$group; } foreach ($file->segments->segment as $segment) { $segmentSize = (int)$segment->attributes()->bytes; $totalSize += $segmentSize; $segmentCount++; } if ($segmentCount > $maxSegmentsCount) { $maxSegmentsCount = $segmentCount; $maxSegmentsFile = [ 'name' => $fileName, 'date' => $fileDate, 'groups' => $fileGroups, 'total_size' => $totalSize, 'segment_count' => $segmentCount ]; } } if ($maxSegmentsFile) { $myObj = new stdClass(); $myObj->Name = $maxSegmentsFile['name']; $myObj->Pass = $password; $myObj->Date = date('Y-m-d H:i:s', (int)$maxSegmentsFile['date']); $myObj->Groupes = implode(', ', $maxSegmentsFile['groups']); $myObj->Taille = formatBytesnzb($maxSegmentsFile['total_size']); $myObj->Taillebit = $maxSegmentsFile['total_size']; $myJSON = json_encode($myObj); echo $myJSON; } else { echo "Aucun fichier trouvé dans le NZB. "; } } ?>