[PHP]Générer un sommaire automatique

Résolu/Fermé
_juana_ Messages postés 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 21 mars 2007 - 21 mars 2007 à 18:26
 Keuronde - 29 août 2009 à 12:55
Bonjour,

Je veux générer un sommaire à partir d'un fichier HTML lu en PHP.
Il faut donc que je repère dans ce fichier des patterns <hN>titre</hN> (ou '<h[0-9]*>.*</h[0-9]*>' en expression régulière) pour constituer ce sommaire, c'est-à-dire qu'il me faut les variables titre et N.
Le problème c'est que je ne trouve pas comment extraire ces infos de mon fichier !

Merci pour votre aide.
A voir également:

4 réponses

Expressions rationnelles compatibles Perl en PHP:
https://www.php.net/manual/fr/ref.pcre.php

l'instruction preg_match permet de faire ce genre de manipulation:
https://www.php.net/manual/fr/function.preg-match.php
0
_juana_ Messages postés 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 21 mars 2007
21 mars 2007 à 20:18
Merci.
C'est pas exactement ce que je cherchais mais finalement j'ai bidouiller un truc avec preg_split :

function makeTableOfContents($file) {
echo "\t<b>Table of contents</b>\n";
echo "\t<ol>\n";

$tableau = file($file);
$pattern='<h[0-9]*>.*</h[0-9]*>';
$oldN = 3;
// For each line of the HTML file, gets <hn>title</hn>
while(list($cle,$str) = each($tableau)) {
// If line contains pattern
if (eregi($pattern, $str)) {
$chars = preg_split('/<h/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
// Get n
$fullN = $chars[1][0];
$n = substr($fullN, 0, 1); // only works for digit titles (from h0 to h9)
// Get title
$fullTitle = substr($fullN, 2);
$closeTag = '/</';//.$n.'>/';
$titleSplit = preg_split($closeTag, $fullTitle, -1, PREG_SPLIT_OFFSET_CAPTURE);
$title = substr($fullTitle, 0, ($titleSplit[1][1]-1));

// Display list
if($n >= 3) { // Don't display titles h1 and h2
if ($n > $oldN) {
echo "\t<ol>\n";
}
else if ($n < $oldN) {
echo "\t</ol>\n\t</li>\n";
}
echo "\t<li>".$title."\n";
$oldN = $n;
}
}
}
fclose($file);
echo "\t</ol>\n";
}
0
je veux générer automatiquement le somaire d'un document de 70p comment procéder
0
Merci pour ce script vraiment pratique !

Par contre je pense que la ligne qui ferme le fichier est inutile, la fonction file s'en occupe déjà.
Donc le fclose($file) est à supprimer, il génère une erreur chez moi...

Merci encore !
0