1

Salut,
juste un petit code qui pourra peut-être aider. Petite adaptation d'un script jQuery d'autonum que j'ai adapté en php.
L'objectif est de rajouter automatiquement les numéros de chapitre en fonction des balises h1 à h9.
Le script rajoute aussi automatiquement les bookmark pour automatiser le sommaire.
Contraintes, la fin du h doit être sur la même ligne que l'ouverture et ne pas comporter d'espace dans la balise.
// $fic est le fichier à charger $pages_rapport_html = file($fic, FILE_IGNORE_NEW_LINES || FILE_SKIP_EMPTY_LINES); // On calcule les bookmark, l'autonum en fonction des headers $segments = array(); foreach($pages_rapport_html as $p) { if(preg_match("/h([0-9])/", $p, $heads)) { $level = intval($heads[1]); if(count($segments) == $level) { // from Hn to another Hn, just increment the last segment $segments[$level-1]++; } elseif(count($segments) > $level) { // from Hn to Hn-x, slice off the last x segments, and increment the last of the remaining $segments = array_slice($segments, 0, $level); $segments[$level-1]++; } elseif(count($segments) < $level) { // from Hn to Hn+x, (should always be Hn+1, but I'm doing some error checks anyway) // add '1' x times. for($i = 0; $i < ($level-count($segments)); $i++) { $segments[] = 1; } } $autonum = join('.', $segments); $level--; // on update la section pour rajouter l'autonum et le bookmark $p = preg_replace("/(<h[0-9]>)(.*)(<\/h[0-9]>)/", "<bookmark title=\"$autonum \2\" level=\"$level\"></bookmark> \1 $autonum \2 \3", $p); } $rapport_html .= $p; }

$rapport_html est ensuite le nouveau code HTML à insérer dans une section <page>, et le tour est joué.

En espérant que ça puisse aider.
a+
yo