Rechercher : dans
Par :

[PHP]Générer un sommaire automatique

Dernière réponse le 29 aoû 2009 à 12:55:33 _juana_, le 21 mar 2007 à 18:26:13 
 Signaler ce message aux modérateurs

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.

Configuration: Linux
Firefox 1.5.0.10

Meilleures réponses pour « [PHP]Générer un sommaire automatique » dans :
Hiérarchisation et Sommaire automatique sous Word Voir Hiérarchisation et Sommaire automatique L’utilisation de la hiérarchisation sous Word permet de générer automatiquement un sommaire. De plus, il permet de simplifier les modifications de style et de mise en forme appliquées aux titres des...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...

1

nonem, le 21 mar 2007 à 18:35:44

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

l'instruction preg_match permet de faire ce genre de manipulation:
http://fr.php.net/manual/fr/function.preg-match.php

Répondre à nonem

2

_juana_, le 21 mar 2007 à 20:18:04

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";
}

Répondre à _juana_

3

juldas, le 6 mar 2008 à 18:47:17

Je veux générer automatiquement le somaire d'un document de 70p comment procéder

Répondre à juldas

4

 Keuronde, le 29 aoû 2009 à 12:55:33

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 !

Répondre à Keuronde
Collection CommentÇaMarche.net